Opened 12 years ago

Closed 12 years ago

#35443 closed defect (fixed)

py25-pynifti, py26-pynifti: ld: unknown option: --no-undefined

Reported by: ns358@… Owned by: jameskyle@…
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: py25-pynifti, py26-pynifti

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

Failure to install.

I've tried

sudo port install py26-pynifti configure.compiler=llvm-gcc-4.2
sudo port install py26-pynifti configure.compiler=apple-gcc-4.2 configure.cxx=g++-apple-4.2

and the patch from Ticket #32268 has been applied.

Attachments (1)

main.log (48.8 KB) - added by ns358@… 12 years ago.

Download all attachments as: .zip

Change History (6)

Changed 12 years ago by ns358@…

Attachment: main.log added

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

Description: modified (diff)
Keywords: clang added
Owner: changed from macports-tickets@… to jameskyle@…
Port: py25-pynifti py26-pynifti added
Summary: py26-pyniftipy25-pynifti, py26-pynifti: ld: unknown option: --no-undefined

Sounds like the project contains a typo: "--no-undefined" should be "-no-undefined" (one leading hyphen, not two). Sounds like that's what #32268 was supposed to have fixed. Maybe there's more than one occurrence of the problem.

Python modules (e.g. py26-pynifti) ignore configure.compiler and instead use the compiler that was used to compile the corresponding python port (e.g. python26) so manually overriding configure.compiler when building a python module has no effect.

Manually adding configure.cxx when setting the compiler to apple-gcc-4.2 has not been necessary since the release of MacPorts 2.0.4; if we still have documentation somewhere saying this is necessary, please let us know where so that we can correct it.

comment:2 in reply to:  1 Changed 12 years ago by ns358@…

Replying to ryandesign@…:

Sounds like the project contains a typo: "--no-undefined" should be "-no-undefined" (one leading hyphen, not two). Sounds like that's what #32268 was supposed to have fixed. Maybe there's more than one occurrence of the problem.

Python modules (e.g. py26-pynifti) ignore configure.compiler and instead use the compiler that was used to compile the corresponding python port (e.g. python26) so manually overriding configure.compiler when building a python module has no effect.

Manually adding configure.cxx when setting the compiler to apple-gcc-4.2 has not been necessary since the release of MacPorts 2.0.4; if we still have documentation somewhere saying this is necessary, please let us know where so that we can correct it.

Thanks. I have removed the extra '-' from patch-setup-py.diff but still get the error (see below). Am I missing something?

The suggestion of the configure.compliers etc was from the previous ticket.

--- setup.py.orig 2009-03-04 03:13:23.000000000 +1100 +++ setup.py 2012-06-25 12:54:38.000000000 +1000 @@ -21,7 +21,7 @@

# Common configuration # ########################

-extra_link_args = --Wl,-no-undefined? +extra_link_args = -Wl,-no-undefined?

include_dirs = [] library_dirs = [] defines = []

@@ -45,11 +45,8 @@

else:

# try to look for nifticlibs in some place if not sys.platform.startswith('win'):

  • include_dirs += ['/usr/include/nifti',
  • '/usr/include/nifticlibs',
  • '/usr/local/include/nifti',
  • '/usr/local/include/nifticlibs',
  • '/usr/local/include']

+ include_dirs += @@PREFIX@@/include/nifti + library_dirs.append('@@PREFIX@@/lib')

else:

# no clue on windows pass

Version 0, edited 12 years ago by ns358@… (next)

comment:3 in reply to:  1 Changed 12 years ago by jmroot (Joshua Root)

Replying to ryandesign@…:

Python modules (e.g. py26-pynifti) ignore configure.compiler and instead use the compiler that was used to compile the corresponding python port (e.g. python26) so manually overriding configure.compiler when building a python module has no effect.

This is not true in general.

comment:4 Changed 12 years ago by jmroot (Joshua Root)

Keywords: clang removed

Besides which, the log clearly shows llvm-gcc-4.2 being used.

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

Cc: ryandesign@… added
Resolution: fixed
Status: newclosed

Ok yes, I confirm that even if we fix setup.py to use "extra_link_args = ['-Wl,-no-undefined']" we still get the error:

/usr/bin/clang -isysroot / -L/opt/local/lib -bundle -undefined dynamic_lookup -m64 build/temp.macosx-10.8-x86_64-2.6/build/src.macosx-10.8-x86_64-2.6/nifti/clib_wrap.o -L/opt/local/lib -lniftiio -o build/lib.macosx-10.8-x86_64-2.6/nifti/_clib.so -Wl,-no-undefined -bundle
ld: unknown option: -no-undefined

I think ld is getting confused because we're asking for both "-undefined dynamic_lookup" (comes from python's config/Makefile) and "-no-undefined" (comes from pynifti's setup.py). I also see "-bundle" is specified twice, once from each, which is unnecessary.

I think it's safe to remove the duplicate and conflicting options from pynifti's setup.py and just use the options python sets. Done with some other changes in r98768.

Note: See TracTickets for help on using tickets.