[MacPorts] #43059: openssh fails to build using default xcode gcc 4.2
#43059: openssh fails to build using default xcode gcc 4.2 -------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Keywords: | Port: openssh -------------------------+-------------------------------- When trying upgrade `openssh` (from `@6.5p1_4+kerberos5+xauth` to `@6.6p1_1+kerberos5+xauth`), I received the following error: {{{ $ sudo port clean openssh ---> Cleaning openssh $ sudo port install -sd openssh ---> Computing dependencies for openssh ---> Fetching distfiles for openssh ---> Verifying checksums for openssh ---> Extracting openssh ---> Applying patches to openssh ---> Configuring openssh ---> Building openssh Error: org.macports.build for port openssh returned: command execution failed Please see the log file for port openssh for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_net_openssh/openssh/main.log To report a bug, follow the instructions in the guide: http://guide.macports.org/#project.tickets Error: Processing of port openssh failed }}} Upon inspecting the named log file (which I no longer have, sorry), I discovered that it was being built with the default xcode gcc4.2, despite the fact that my active selected gcc is mp-gcc48. It built successfully when I forced it to use gcc48: {{{ $ sudo port install -s openssh configure.compiler=macports-gcc-4.8 }}} I'm no expert, but I'm not sure that's really the best solution. For one, I have to remember to specify each time I update it, and for another, it seems like this might harm some other compatibility in the future? Shouldn't the default compiler work? Please let me know if I can provide more information (I can probably uninstall and attempt build with the default compiler if you need the original error log). -- Ticket URL: <https://trac.macports.org/ticket/43059> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: openssh | --------------------------+-------------------------------- Comment (by cal@…): Your active selected gcc does not affect the compiler used by MacPorts to build stuff. If it did that would significantly increase the support burden for us because builds would no longer be easy to reproduce. The select mechanism is purely for your own convenience. In fact, depending on a selection is considered a bug in a port. The default compiler should work, and if it doesn't we should blacklist it so a better compiler gets used automatically. However, we'd have to know '''why''' this fails in the first place. We need to logfile to debug that, so please run: {{{ sudo port clean openssh sudo port destroot openssh }}} This will not affect your currently installed openssh, but it will attempt to build openssh, and should fail as before. Once it did fail, attach the log file mentioned in the error message. -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:1> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: openssh | --------------------------+-------------------------------- Comment (by leeawalsh@…): Replying to [comment:1 cal@…]:
Your active selected gcc does not affect the compiler used by MacPorts to build stuff. If it did that would significantly increase the support burden for us because builds would no longer be easy to reproduce. The select mechanism is purely for your own convenience. In fact, depending on a selection is considered a bug in a port.
Thanks, so it selects the compiler for my own use elsewhere, not an internal selection for macports' use.
The default compiler should work, and if it doesn't we should blacklist it so a better compiler gets used automatically. However, we'd have to know '''why''' this fails in the first place. We need to logfile to debug that, so please run:
{{{ sudo port clean openssh sudo port destroot openssh }}} This will not affect your currently installed openssh, but it will attempt to build openssh, and should fail as before. Once it did fail, attach the log file mentioned in the error message.
The log from the above procedure is now attached. -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:2> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: openssh | --------------------------+-------------------------------- Comment (by cal@…): Please attach the output of {{{ nm /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_net_openssh/openssh/work/openssh-6.6p1/libssh.a }}} -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:3> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: openssh | --------------------------+-------------------------------- Comment (by cal@…): I don't get that. The compilation fails in the linking stage of ssh-add with missing symbols: {{{ :info:build /usr/bin/gcc-4.2 -o ssh-add ssh-add.o -L. -Lopenbsd-compat/ -L/opt/local/lib -L/opt/local/lib -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -fstack-protector-all -pie -lssh -lopenbsd-compat -lcrypto -lz -lresolv :info:build Undefined symbols: :info:build "_key_free", referenced from: :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build _main in ssh-add.o :info:build "_key_load_file", referenced from: :info:build _do_file in ssh-add.o :info:build "_key_perm_ok", referenced from: :info:build _do_file in ssh-add.o :info:build "_key_fingerprint", referenced from: :info:build _main in ssh-add.o :info:build "_ssh_close_authentication_connection", referenced from: :info:build _main in ssh-add.o :info:build "_key_type", referenced from: :info:build _main in ssh-add.o :info:build "_buffer_init", referenced from: :info:build _do_file in ssh-add.o :info:build "_error", referenced from: :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build "_ssh_get_authentication_connection", referenced from: :info:build _main in ssh-add.o :info:build "_seed_rng", referenced from: :info:build _main in ssh-add.o :info:build "_key_equal_public", referenced from: :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build "_xstrdup", referenced from: :info:build _do_file in ssh-add.o :info:build _ssh_get_progname in libopenbsd-compat.a(bsd-misc.o) :info:build "_fatal", referenced from: :info:build _do_file in ssh-add.o :info:build "_key_parse_private", referenced from: :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build "_key_write", referenced from: :info:build _main in ssh-add.o :info:build "_sanitise_stdfd", referenced from: :info:build _main in ssh-add.o :info:build "_ssh_get_first_identity", referenced from: :info:build _main in ssh-add.o :info:build "_key_load_public", referenced from: :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build "_key_cert_is_legacy", referenced from: :info:build _do_file in ssh-add.o :info:build "_ssh_add_identity_constrained", referenced from: :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build "_ssh_remove_all_identities", referenced from: :info:build _main in ssh-add.o :info:build _main in ssh-add.o :info:build _main in ssh-add.o :info:build "_convtime", referenced from: :info:build _main in ssh-add.o :info:build "_ssh_lock_agent", referenced from: :info:build _main in ssh-add.o :info:build "_read_passphrase", referenced from: :info:build _do_file in ssh-add.o :info:build _main in ssh-add.o :info:build _main in ssh-add.o :info:build _main in ssh-add.o :info:build "_ssh_remove_identity", referenced from: :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build "_key_size", referenced from: :info:build _main in ssh-add.o :info:build "_key_cert_copy", referenced from: :info:build _do_file in ssh-add.o :info:build "_key_to_certified", referenced from: :info:build _do_file in ssh-add.o :info:build "_ssh_update_card", referenced from: :info:build _main in ssh-add.o :info:build "_ssh_get_next_identity", referenced from: :info:build _main in ssh-add.o :info:build "_xasprintf", referenced from: :info:build _do_file in ssh-add.o :info:build _do_file in ssh-add.o :info:build ld: symbol(s) not found :info:build collect2: ld returned 1 exit status :info:build make: *** [ssh-add] Error 1 }}} but the linker command line correctly says `-L. -lssh` which has these symbols. The only reasonable explanation I have for this is that older versions of the OS X linker first tried finding dynamic libraries in '''all''' linker search paths before trying to link against static libraries. Do you have a file named `libssh.dylib` in any of `/opt/local/lib`, `/usr/local/lib`, or `/usr/lib`? -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:4> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: openssh | --------------------------+-------------------------------- Comment (by cal@…): Can you try again with the attached patch applied to the Portfile (you can locate it using `port file openssh`)? -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:5> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: openssh | --------------------------+-------------------------------- Comment (by leeawalsh@…): Replying to [comment:4 cal@…]:
The only reasonable explanation I have for this is that older versions of the OS X linker first tried finding dynamic libraries in '''all''' linker search paths before trying to link against static libraries. Do you have a file named `libssh.dylib` in any of `/opt/local/lib`, `/usr/local/lib`, or `/usr/lib`?
I have these: {{{ $ ls /opt/local/lib/libssh*dylib /opt/local/lib/libssh.4.2.5.dylib* /opt/local/lib/libssh_threads.4.2.5.dylib* /opt/local/lib/libssh.4.dylib@ /opt/local/lib/libssh_threads.4.dylib@ /opt/local/lib/libssh.dylib@ /opt/local/lib/libssh_threads.dylib@ $ ls /usr/local/lib/libssh*dylib ls: /usr/local/lib/libssh*dylib: No such file or directory $ ls /usr/lib/libssh*dylib ls: /usr/lib/libssh*dylib: No such file or directory }}} Most of those are links to `libssh.4.2.5.dylib` which I've attached. -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:6> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: openssh | --------------------------+-------------------------------- Comment (by cal@…): Yeah, that would probably cause these problems with old linkers. Please try the patch, it should help. -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:7> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: | Keywords: Port: openssh | --------------------------+-------------------------------- Comment (by leeawalsh@…): Appears to have helped! {{{ $ sudo patch < patch-Portfile.diff patching file Portfile $ sudo port clean openssh ---> Cleaning openssh $ sudo port destroot openssh ---> Computing dependencies for openssh ---> Fetching distfiles for openssh ---> Verifying checksums for openssh ---> Extracting openssh ---> Applying patches to openssh ---> Configuring openssh ---> Building openssh ---> Staging openssh into destroot ---> Creating launchd control script ########################################################### # A startup item has been generated that will aid in # starting openssh with launchd. It is disabled # by default. Execute the following command to start it, # and to cause it to launch at startup: # # sudo port load openssh ########################################################### }}} -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:8> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: fixed | Keywords: Port: openssh | --------------------------+-------------------------------- Changes (by cal@…): * status: new => closed * resolution: => fixed Comment: OK, r118176. -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:9> MacPorts <http://www.macports.org/> Ports system for OS X
#43059: openssh fails to build using default xcode gcc 4.2 --------------------------+-------------------------------- Reporter: leeawalsh@… | Owner: macports-tickets@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.2.1 Resolution: fixed | Keywords: Port: openssh | --------------------------+-------------------------------- Comment (by leeawalsh@…): Thank you very much! -- Ticket URL: <https://trac.macports.org/ticket/43059#comment:10> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts