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)
Change History (6)
Changed 12 years ago by ns358@…
comment:1 follow-ups: 2 3 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-pynifti → py25-pynifti, py26-pynifti: ld: unknown option: --no-undefined |
comment:2 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
comment:3 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: | new → closed |
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.
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.