#24021 closed defect (fixed)
libmemcached: build fails on 10.5 and 10.4
Reported by: | ben.xiao@… | Owned by: | brett@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.8.2 |
Keywords: | Cc: | macports@…, tomsartain+macport@…, ddebernardy@…, pixilla (Bradley Giesbrecht) | |
Port: | libmemcached |
Description (last modified by mf2k (Frank Schima))
sudo port install libmemcached
---> Computing dependencies for libmemcached ---> Fetching libmemcached ---> Attempting to fetch libmemcached-0.38.tar.gz from http://distfiles.macports.org/libmemcached ---> Verifying checksum(s) for libmemcached ---> Extracting libmemcached ---> Configuring libmemcached ---> Building libmemcached Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_libmemcached/work/libmemcached-0.38" && /usr/bin/make -j2 all " returned error 2 Command output: _ms_build_udp_headers in ms_conn.o _ms_mcd_mlget in ms_conn.o _ms_mcd_get in ms_conn.o _ms_mcd_set in ms_conn.o _ms_mcd_set in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_clock_handler in ms_thread.o _ms_clock_handler in ms_thread.o _ms_worker_libevent in ms_thread.o _ms_worker_libevent in ms_thread.o _ms_worker_libevent in ms_thread.o "___sync_fetch_and_sub", referenced from: _ms_conn_close in ms_conn.o ld: symbol(s) not found collect2: ld returned 1 exit status make[2]: *** [clients/memslap] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Error: Status 1 encountered during processing.
Attachments (1)
Change History (22)
comment:1 Changed 15 years ago by mf2k (Frank Schima)
Description: | modified (diff) |
---|---|
Owner: | changed from macports-tickets@… to brett@… |
Port: | libmemcached added |
comment:2 Changed 15 years ago by jmroot (Joshua Root)
Summary: | make failed on libmemcached - same problem as #22246(??) → make failed on libmemcached |
---|
comment:3 Changed 15 years ago by touch.ung@…
I got the similar "undefined symbols" error (___sync_fetch_and_sub and ___sync_fetch_and_add). Here's the debug output.
DEBUG: Found port in file:///opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/libmemcached DEBUG: epoch: in tree: 0 installed: 0 DEBUG: libmemcached 0.38_0 exists in the ports tree DEBUG: libmemcached 0.34_0 is the latest installed DEBUG: libmemcached 0.34_0 is active DEBUG: Merging existing variants into variants DEBUG: new fully merged portvariants: DEBUG: Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/libmemcached DEBUG: OS Platform: darwin DEBUG: OS Version: 8.11.0 DEBUG: Mac OS X Version: 10.4 DEBUG: System Arch: powerpc DEBUG: setting option os.universal_supported to yes DEBUG: org.macports.load registered provides 'load', a pre-existing procedure. Target override will not be provided DEBUG: org.macports.distfiles registered provides 'distfiles', a pre-existing procedure. Target override will not be provided DEBUG: adding the default universal variant DEBUG: Reading variant descriptions from /opt/local/var/macports/sources/rsync.macports.org/release/ports/_resources/port1.0/variant_descriptions.conf DEBUG: Requested variant powerpc is not provided by port libmemcached. DEBUG: Requested variant darwin is not provided by port libmemcached. DEBUG: Requested variant macosx is not provided by port libmemcached. DEBUG: Found port in file:///opt/local/var/macports/sources/rsync.macports.org/release/ports/lang/perl5 DEBUG: perl5 is *not* installed by MacPorts DEBUG: Searching for dependency: perl5 DEBUG: Didn't find receipt, going to depspec regex for: perl5 DEBUG: Found Dependency: path: /opt/local/bin filename: pod2man regex: ^pod2man$ DEBUG: Found Dependency: path: /usr/bin filename: pod2man regex: ^pod2man$ DEBUG: perl5 not installed, soft dependency satisfied DEBUG: Found port in file:///opt/local/var/macports/sources/rsync.macports.org/release/ports/sysutils/memcached DEBUG: epoch: in tree: 0 installed: 0 DEBUG: memcached 1.4.4_0 exists in the ports tree DEBUG: memcached 1.4.4_0 is the latest installed DEBUG: memcached 1.4.4_0 is active DEBUG: Merging existing variants into variants DEBUG: new fully merged portvariants: DEBUG: Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/release/ports/sysutils/memcached DEBUG: OS Platform: darwin DEBUG: OS Version: 8.11.0 DEBUG: Mac OS X Version: 10.4 DEBUG: System Arch: powerpc DEBUG: setting option os.universal_supported to yes DEBUG: org.macports.load registered provides 'load', a pre-existing procedure. Target override will not be provided DEBUG: org.macports.distfiles registered provides 'distfiles', a pre-existing procedure. Target override will not be provided DEBUG: Using group file /opt/local/var/macports/sources/rsync.macports.org/release/ports/_resources/port1.0/group/muniversal-1.0.tcl DEBUG: Reading variant descriptions from /opt/local/var/macports/sources/rsync.macports.org/release/ports/_resources/port1.0/variant_descriptions.conf DEBUG: universal variant already exists, so not adding the default one DEBUG: Requested variant powerpc is not provided by port memcached. DEBUG: Requested variant darwin is not provided by port memcached. DEBUG: Requested variant macosx is not provided by port memcached. DEBUG: Found port in file:///opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/libevent DEBUG: epoch: in tree: 0 installed: 0 DEBUG: libevent 1.4.13_0 exists in the ports tree DEBUG: libevent 1.4.13_0 is the latest installed DEBUG: libevent 1.4.13_0 is active DEBUG: Merging existing variants into variants DEBUG: new fully merged portvariants: DEBUG: Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/libevent DEBUG: OS Platform: darwin DEBUG: OS Version: 8.11.0 DEBUG: Mac OS X Version: 10.4 DEBUG: System Arch: powerpc DEBUG: setting option os.universal_supported to yes DEBUG: org.macports.load registered provides 'load', a pre-existing procedure. Target override will not be provided DEBUG: org.macports.distfiles registered provides 'distfiles', a pre-existing procedure. Target override will not be provided DEBUG: adding the default universal variant DEBUG: Reading variant descriptions from /opt/local/var/macports/sources/rsync.macports.org/release/ports/_resources/port1.0/variant_descriptions.conf DEBUG: Requested variant powerpc is not provided by port libevent. DEBUG: Requested variant darwin is not provided by port libevent. DEBUG: Requested variant macosx is not provided by port libevent. DEBUG: No need to upgrade! libevent 1.4.13_0 >= libevent 1.4.13_0 DEBUG: No need to upgrade! memcached 1.4.4_0 >= memcached 1.4.4_0 DEBUG: Attempting ln -sf /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_libmemcached/work /opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/libmemcached/work ---> Computing dependencies for libmemcached DEBUG: Searching for dependency: memcached DEBUG: Found Dependency: receipt exists for memcached DEBUG: Searching for dependency: perl5 DEBUG: Didn't find receipt, going to depspec regex for: perl5 DEBUG: Found Dependency: path: /opt/local/bin filename: pod2man regex: ^pod2man$ DEBUG: Found Dependency: path: /usr/bin filename: pod2man regex: ^pod2man$ DEBUG: Executing org.macports.main (libmemcached) DEBUG: Skipping completed org.macports.fetch (libmemcached) DEBUG: Skipping completed org.macports.checksum (libmemcached) DEBUG: Skipping completed org.macports.extract (libmemcached) DEBUG: Skipping completed org.macports.patch (libmemcached) DEBUG: Skipping completed org.macports.configure (libmemcached) ---> Building libmemcached DEBUG: Executing org.macports.build (libmemcached) DEBUG: Environment: MACOSX_DEPLOYMENT_TARGET='10.4' DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_libmemcached/work/libmemcached-0.38" && /usr/bin/make -j1 all' /usr/bin/make all-recursive Making all in docs ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_cas.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_create.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_flags.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_free.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_key_length.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_key_value.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_length.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_st.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_value.pop /usr/bin/make all-am make[3]: Nothing to be done for `all-am'. CCLD clients/memslap /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: Undefined symbols: ___sync_fetch_and_add ___sync_fetch_and_sub collect2: ld returned 1 exit status make[2]: *** [clients/memslap] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_libmemcached/work/libmemcached-0.38" && /usr/bin/make -j1 all " returned error 2 DEBUG: Backtrace: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_libmemcached/work/libmemcached-0.38" && /usr/bin/make -j1 all " returned error 2 while executing "command_exec build" (procedure "portbuild::build_main" line 9) invoked from within "$procedure $targetname" Warning: the following items did not execute (for libmemcached): org.macports.destroot org.macports.build DEBUG: Registry error: perl5 not registered as installed & active. while executing "registry::active $portname" Error: Unable to upgrade port: 1 To report a bug, see <http://guide.macports.org/#project.tickets>
comment:7 Changed 14 years ago by russellhaering@…
I believe this has to do with the gcc version. Both _sync_fetch_and_sub and _sync_fetch_and_add don't seem to have existed before gcc 4.1. A similar issue is mentioned in http://lists.tangent.org/pipermail/libmemcached/2010-February/001053.html
comment:9 Changed 14 years ago by ddebernardy@…
This is still occurring...
DB:/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_libmemcached/work /libmemcached-0.40 $ /usr/bin/make -j2 all /usr/bin/make all-recursive Making all in docs ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_cas.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_create.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_flags.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_free.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_key_length.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_key_value.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_length.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_st.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_value.pop /usr/bin/make all-am make[3]: Nothing to be done for `all-am'. CCLD clients/memslap Undefined symbols: "___sync_fetch_and_add", referenced from: _ms_setup_conn in ms_conn.o _ms_reconn_socks in ms_conn.o _ms_verify_value in ms_conn.o _ms_verify_value in ms_conn.o _ms_build_udp_headers in ms_conn.o _ms_mcd_mlget in ms_conn.o _ms_mcd_get in ms_conn.o _ms_mcd_set in ms_conn.o _ms_mcd_set in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_drive_machine in ms_conn.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_exec_task in ms_task.o _ms_clock_handler in ms_thread.o _ms_clock_handler in ms_thread.o _ms_worker_libevent in ms_thread.o _ms_worker_libevent in ms_thread.o _ms_worker_libevent in ms_thread.o "___sync_fetch_and_sub", referenced from: _ms_conn_close in ms_conn.o ld: symbol(s) not found collect2: ld returned 1 exit status make[2]: *** [clients/memslap] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
comment:11 Changed 14 years ago by ddebernardy@…
Here's another trace, in case it gives anyone an idea:
DB:/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_libmemcached/work /libmemcached-0.40 $ sudo /usr/bin/make -j2 all /usr/bin/make all-recursive Making all in docs ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_cas.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_create.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_flags.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_free.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_key_length.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_key_value.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_length.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_st.pop ln -s ../docs/memcached_result_st.pod ../docs/memcached_result_value.pop /usr/bin/make all-am make[3]: Nothing to be done for `all-am'. CC libmemcached/protocol/ascii_handler.lo CC libmemcached/protocol/binary_handler.lo In file included from ./libmemcached/protocol/common.h:18, from libmemcached/protocol/ascii_handler.c:2: ./libmemcached/protocol_handler.h:131: warning: declaration of ‘recv’ shadows a global declaration /usr/include/sys/socket.h:567: warning: shadowed declaration is here ./libmemcached/protocol_handler.h:132: warning: declaration of ‘send’ shadows a global declaration /usr/include/sys/socket.h:571: warning: shadowed declaration is here In file included from ./libmemcached/protocol/common.h:18, from libmemcached/protocol/binary_handler.c:2: ./libmemcached/protocol_handler.h:131: warning: declaration of ‘recv’ shadows a global declaration /usr/include/sys/socket.h:567: warning: shadowed declaration is here ./libmemcached/protocol_handler.h:132: warning: declaration of ‘send’ shadows a global declaration /usr/include/sys/socket.h:571: warning: shadowed declaration is here CC libmemcached/protocol/cache.lo CC libmemcached/protocol/pedantic.lo CC libmemcached/protocol/protocol_handler.lo In file included from ./libmemcached/protocol/common.h:18, from libmemcached/protocol/pedantic.c:2: ./libmemcached/protocol_handler.h:131: warning: declaration of ‘recv’ shadows a global declaration /usr/include/sys/socket.h:567: warning: shadowed declaration is here ./libmemcached/protocol_handler.h:132: warning: declaration of ‘send’ shadows a global declaration /usr/include/sys/socket.h:571: warning: shadowed declaration is here In file included from ./libmemcached/protocol/common.h:18, from libmemcached/protocol/protocol_handler.c:2: ./libmemcached/protocol_handler.h:131: warning: declaration of ‘recv’ shadows a global declaration /usr/include/sys/socket.h:567: warning: shadowed declaration is here ./libmemcached/protocol_handler.h:132: warning: declaration of ‘send’ shadows a global declaration /usr/include/sys/socket.h:571: warning: shadowed declaration is here CC libmemcached/byteorder.lo CC libmemcached/libmemcached_libmemcached_la-allocators.lo CC libmemcached/libmemcached_libmemcached_la-analyze.lo CC libmemcached/libmemcached_libmemcached_la-auto.lo CC libmemcached/libmemcached_libmemcached_la-behavior.lo CC libmemcached/libmemcached_libmemcached_la-connect.lo CC libmemcached/libmemcached_libmemcached_la-delete.lo CC libmemcached/libmemcached_libmemcached_la-do.lo CC libmemcached/libmemcached_libmemcached_la-dump.lo CC libmemcached/libmemcached_libmemcached_la-fetch.lo CC libmemcached/libmemcached_libmemcached_la-flush.lo CC libmemcached/libmemcached_libmemcached_la-flush_buffers.lo CC libmemcached/libmemcached_libmemcached_la-get.lo CC libmemcached/libmemcached_libmemcached_la-hash.lo CC libmemcached/libmemcached_libmemcached_la-hosts.lo CC libmemcached/libmemcached_libmemcached_la-io.lo libmemcached/io.c: In function ‘io_wait’: libmemcached/io.c:33: warning: ‘error’ may be used uninitialized in this function CC libmemcached/libmemcached_libmemcached_la-key.lo CC libmemcached/libmemcached_libmemcached_la-memcached.lo CC libmemcached/libmemcached_libmemcached_la-parse.lo CC libmemcached/libmemcached_libmemcached_la-purge.lo CC libmemcached/libmemcached_libmemcached_la-quit.lo CC libmemcached/libmemcached_libmemcached_la-response.lo CC libmemcached/libmemcached_libmemcached_la-result.lo CC libmemcached/libmemcached_libmemcached_la-server.lo CC libmemcached/libmemcached_libmemcached_la-server_list.lo CC libmemcached/libmemcached_libmemcached_la-stats.lo CC libmemcached/libmemcached_libmemcached_la-storage.lo CC libmemcached/libmemcached_libmemcached_la-strerror.lo CC libmemcached/libmemcached_libmemcached_la-verbosity.lo CC libmemcached/libmemcached_libmemcached_la-version.lo CC libmemcached/libmemcached_libmemcachedcallbacks_la-callback.lo CC libmemcached/string.lo CC libhashkit/libhashkit_libhashkitinc_la-algorithm.lo CC libhashkit/libhashkit_libhashkitinc_la-behavior.lo CC libhashkit/libhashkit_libhashkitinc_la-crc32.lo CC libhashkit/libhashkit_libhashkitinc_la-fnv.lo CC libhashkit/libhashkit_libhashkitinc_la-digest.lo CC libhashkit/libhashkit_libhashkitinc_la-function.lo CC libhashkit/libhashkit_libhashkitinc_la-hashkit.lo CC libhashkit/libhashkit_libhashkitinc_la-jenkins.lo CC libhashkit/libhashkit_libhashkitinc_la-ketama.lo CC libhashkit/libhashkit_libhashkitinc_la-md5.lo CC libhashkit/libhashkit_libhashkitinc_la-murmur.lo CC libhashkit/libhashkit_libhashkitinc_la-one_at_a_time.lo CC libhashkit/libhashkit_libhashkitinc_la-strerror.lo CC libhashkit/libhashkit_libhashkitinc_la-hsieh.lo libhashkit/hsieh.c:20: error: syntax error before ‘(’ token libhashkit/hsieh.c:20: warning: function declaration isn’t a prototype libhashkit/hsieh.c:25: error: syntax error before ‘if’ libhashkit/hsieh.c:28: warning: type defaults to ‘int’ in declaration of ‘rem’ libhashkit/hsieh.c:28: warning: redundant redeclaration of ‘rem’ libhashkit/hsieh.c:23: warning: previous declaration of ‘rem’ was here libhashkit/hsieh.c:28: error: ‘key_length’ undeclared here (not in a function) libhashkit/hsieh.c:28: warning: data definition has no type or storage class libhashkit/hsieh.c:29: error: syntax error before ‘>>=’ token libhashkit/hsieh.c:35: warning: type defaults to ‘int’ in declaration of ‘tmp’ libhashkit/hsieh.c:35: error: ‘key’ undeclared here (not in a function) libhashkit/hsieh.c:35: error: ‘hash’ undeclared here (not in a function) libhashkit/hsieh.c:35: warning: data definition has no type or storage class libhashkit/hsieh.c:36: warning: type defaults to ‘int’ in declaration of ‘hash’ libhashkit/hsieh.c:36: error: initializer element is not constant libhashkit/hsieh.c:36: warning: data definition has no type or storage class libhashkit/hsieh.c:37: error: syntax error before ‘+=’ token make[2]: *** [libhashkit/libhashkit_libhashkitinc_la-hsieh.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
comment:12 Changed 14 years ago by ddebernardy@…
Installing gcc 4.2 doesn't help...
sudo port install apple-gcc42 sudo rm /usr/bin/gcc sudo ln -s /usr/bin/gcc-4.2 /usr/bin/gcc gcc --version
comment:13 Changed 14 years ago by ddebernardy@…
Changing the portfile so it installs version 0.32 instead works.
comment:14 Changed 14 years ago by ddebernardy@…
however, php5-memcached the fails for the very same reason... :-(
comment:15 Changed 14 years ago by ddebernardy@…
php5-memcached 1.0.0 installs. the md5 of the file is b5b0b438aa8e444840a7a4aff515db2a.
comment:16 Changed 14 years ago by ddebernardy@…
oh, and the md5 of libmemcached 0.32 is 2f06059803737b6bf6135edfc86db4b3.
Changed 14 years ago by pixilla (Bradley Giesbrecht)
Attachment: | patch-Portfile.diff added |
---|
Patch from Brad
comment:17 Changed 14 years ago by pixilla (Bradley Giesbrecht)
My patch is for libmemcached 0.43 and builds on Mac OS X 10.5 Intel. I added make test which has only 1 out of 54 failures "ascii verbosity [FAIL]".
I noticed by default libmemcached builds with sasl2 if found and Apple and MacPorts both have a version. I think we should add --disable-sasl to configure.args and an sasl2 variant with configure.args-delete --disable-sasl and depends_lib port:sasl2. Another options is to just add depends_lib port:sasl2 which might be better for backward compatibility or add the new sasl2 as a default variant.
comment:19 Changed 14 years ago by pixilla (Bradley Giesbrecht)
BTW, I'm just installing libmemcached to satisfy an extension option for Yii framework. I hope someone else can test my patch to see if it works :)
comment:20 Changed 14 years ago by gdimilia@…
Yesterday night after a lot of tests it worked (even if I don't know if it has been compiled in the right way).
What I did is:
- run the installation of the port file:
sudo port install libmemcached
- after the make failed I went in the directory with the source code and I run
./configure
and aftermake
: the make went fine
- after that I run again
sudo port install libmemcached
and it placed everything in the right place.
This suggests me that there can be a problem in the configuration phase
comment:21 Changed 14 years ago by jmroot (Joshua Root)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Summary: | make failed on libmemcached → libmemcached: build fails on 10.5 and 10.4 |
Not the same as #22246 at all. Attach full debug output; the output you've provided does not show the initial error.