#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)
Change History (6)
Changed 13 years ago by david.reitter@…
comment:2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | david.reitter@… removed |
---|---|
Description: | modified (diff) |
Keywords: | universal added |
Summary: | libzzip won't build correctly with clang → libzzip: 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 13 years ago by ryandesign (Ryan Carsten Schmidt)
Owner: | changed from macports-tickets@… to ryandesign@… |
---|---|
Status: | new → assigned |
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 13 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:5 Changed 13 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.