Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#33315 closed defect (fixed)

libzzip: universal variant fails with clang

Reported by: david.reitter@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: clang universal Cc:
Port: libzzip

Description (last modified by ryandesign (Ryan Carsten Schmidt))

libzzip fails to build. It tries to build with clang and fails with the error message:

:info:build /bin/sh ../libtool --silent --tag=CC   --mode=link /Developer/usr/bin/clang  -O2 -arch i386 -arch x86_64 -D_USE_MMAP  -fomit-frame-pointer -Wall -Wpointer-arith -Wsign-compare -Wmissing-declarations -Wdeclaration-after-statement -Werror-implicit-function-declaration -Wstrict-aliasing -Warray-bounds -fstrict-prototypes -Wstrict-prototypes --export-dynamic -L/opt/local/lib -arch i386 -arch x86_64 -o zzipwrap zzipwrap.o libzzipwrap.la   
:info:build clang: error: unsupported option '--export-dynamic'

The build commands were

sudo port uninstall libzzip
sudo port clean libzzip
sudo port install libzzip +universal

As a workaround, I managed to install libzzip with the following trick:

sudo port install libzzip +universal configure.compiler=llvm-gcc-4.2

See also #30849

Attachments (1)

main.log (83.6 KB) - added by david.reitter@… 12 years ago.

Download all attachments as: .zip

Change History (6)

Changed 12 years ago by david.reitter@…

Attachment: main.log added

comment:1 Changed 12 years ago by david.reitter@…

port info clang
clang @2.9, Revision 1 (lang)
Replaced by:          clang-2.9
Variants:             universal

comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: david.reitter@… removed
Description: modified (diff)
Keywords: universal added
Summary: libzzip won't build correctly with clanglibzzip: universal variant fails with clang

Ok, I can reproduce this, but only when using the universal variant; if you don't really need a universal build, clean and build without the universal variant and it should work.

comment:3 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned

The problem is that we fix the --export-dynamic problem like this:

post-patch {
    reinplace {/ZZIPLIB_LDFLAGS=/s/--export-dynamic/-export-dynamic/} \
        ${worksrcpath}/configure
}

But when the universal variant is selected we do this:

if {[variant_isset universal]} {
    patchfiles-append patch-configure.ac.diff
    use_autoconf yes
}

This causes autoconf to run, thus regenerating configure from configure.ac and wiping out what we did in our reinplace.

It would be simplest if we get rid of the reinplace and turn it into a patch-configure.diff, and also add the patch to the existing patch-configure.ac.diff for when the universal variant is used.

comment:4 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

comment:5 Changed 12 years ago by david.reitter@…

Thank you! I do need +universal (it's i386 and x86_64 for me) due to many problems with building non-MacPorts software when linking against libraries.

Note: See TracTickets for help on using tickets.