#68570 closed defect (fixed)

serf1 @1.3.10: Doesn't use -arch flags

Reported by: rmottola (Riccardo) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: reneeotten (Renee Otten), barracuda156
Port: serf1

Description

after apr-utils finally generates a proper 64bit dylib I try to build serf1 which fails with a lot of symbols.

I see this partç

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_www_serf1/serf1/work/compwrap/cc/usr/bin/gcc-4.2 -o libserf-1.1.3.10.dylib -Wl,-install_name,/opt/local/lib/libserf-1.dylib -dynamiclib -Wl,-current_version,1.3.10 -Wl,-compatibility_version,1.3.0 context.os incoming.os outgoing.os ssltunnel.os buckets/aggregate_buckets.os buckets/allocator.os buckets/barrier_buckets.os buckets/buckets.os buckets/bwtp_buckets.os buckets/chunk_buckets.os buckets/dechunk_buckets.os buckets/deflate_buckets.os buckets/file_buckets.os buckets/headers_buckets.os buckets/iovec_buckets.os buckets/limit_buckets.os buckets/mmap_buckets.os buckets/request_buckets.os buckets/response_body_buckets.os buckets/response_buckets.os buckets/simple_buckets.os buckets/socket_buckets.os buckets/ssl_buckets.os auth/auth.os auth/auth_basic.os auth/auth_digest.os auth/auth_spnego.os auth/auth_spnego_gss.os auth/auth_spnego_sspi.os -L/opt/local/libexec/openssl3/lib -L/opt/local/lib -L/opt/local/lib/db48 -lssl -lcrypto -lz -lapr-1 -lpthread -laprutil-1 -ldb-4.8 -lexpat -liconv
ld warning: in /opt/local/libexec/openssl3/lib/libssl.dylib, file is not of required architecture
ld warning: in /opt/local/libexec/openssl3/lib/libcrypto.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libz.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libapr-1.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libaprutil-1.dylib, file is not of required architecture
ld warning: in /opt/local/lib/db48/libdb-4.8.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libexpat.dylib, file is not of required architecture
ld warning: in /opt/local/lib/libiconv.dylib, file is not of required architecture
Undefined symbols:
  "_apr_uuid_get", referenced from:
      _serf__setup_request_digest_auth in auth_digest.os
  "_BIO_meth_free", referenced from:

If I check e.g.

file /opt/local/libexec/openssl3/lib/libssl.dylib
/opt/local/libexec/openssl3/lib/libssl.dylib: Mach-O 64-bit dynamically linked shared library x86_64

Can I desume it is trying to build wrongly a 32bit version?

I see no arch flags

Change History (3)

comment:1 Changed 13 months ago by jmroot (Joshua Root)

Cc: reneeotten added
Keywords: leopard 64bit removed

It wouldn't surprise me if the switch to the makefile portgroup broke something subtly, particularly since this doesn't even use a Makefile, it uses scons.

comment:2 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: barracuda156 added
Owner: set to ryandesign
Status: newaccepted
Summary: serf1 fails to build - wrong architecture on 10.5 64bit ?serf1 @1.3.10: Doesn't use -arch flags

Before serf1 used the makefile portgroup, it supplied CC, CPPFLAGS, CFLAGS, and LINKFLAGS as arguments to scons. After including the makefile portgroup, it is still setting CC as an argument, but CPPFLAGS and CFLAGS are now being supplied as environment variables (which scons is ignoring because it expected arguments not environment variables) and the makefile portgroup is also setting LDFLAGS (which scons is ignoring because it expected an environment variable named LINKFLAGS).

The makefile portgroup can be told to supply CPPFLAGS and CFLAGS as arguments instead of environment variables by using makefile.override-append CFLAGS CPPFLAGS however there is no way to tell the makefile portgroup to use the name LINKFLAGS instead of LDFLAGS; LINKFLAGS will have to be set manually in build.args. It's therefore simplest to revert [f2d6387f1c3c27ae29d5bf7414503793f778392c/macports-ports] entirely.

Some effort to fix the missing arch flags was made in [a4ee3e38474931392a9ae37590242e7138f6225c/macports-ports] but only on Mac OS X 10.6 when building for ppc. That should be reverted as well since it won't be necessary after fixing it properly for all systems.

comment:3 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.