#13814 closed defect (fixed)
fftw-3: Not building universal variant
Reported by: | andre.david@… | Owned by: | skymoo (Adam Mercer) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.6.0 |
Keywords: | universal | Cc: | tenomoto (Takeshi Enomoto), Veence (Vincent) |
Port: | fftw-3, fftw-3-single |
Description
Hi,
I am using a data analysis package (root.cern.ch) that build x86_64 and I like that. This package has an interface to fftw-3, but when compiling it, I get:
g++ -O2 -m64 -dynamiclib -single_module -undefined dynamic_lookup -install_name /Users/adavid/root/lib/libFFTW.dylib -m64 -o lib/libFFTW.dylib fftw/src/TFFTComplex.o fftw/src/TFFTComplexReal.o fftw/src/TFFTReal.o fftw/src/TFFTRealComplex.o fftw/src/G__FFTW.o -ldl -L/opt/local/lib -lfftw3 ld: warning in /opt/local/lib/libfftw3.a, file is not of required architecture ln -fs libFFTW.dylib lib/libFFTW.so ==> lib/libFFTW.dylib done
So I thought I just needed to uninstall fftw-3 and ask for it with +universal. The problem is that:
$ sudo port -d -v install fftw-3 +universal DEBUG: Found port in file:///Users/adavid/macports-trunk/dports/math/fftw-3 DEBUG: Changing to port directory: /Users/adavid/macports-trunk/dports/math/fftw-3 DEBUG: org.macports.load registered provides 'load', a pre-existing procedure. Target override will not be provided DEBUG: Requested variant darwin is not provided by port fftw-3. DEBUG: Requested variant i386 is not provided by port fftw-3. DEBUG: Requested variant macosx is not provided by port fftw-3. DEBUG: Executing variant universal provides universal DEBUG: Executing org.macports.main (fftw-3) ---> Fetching fftw-3 DEBUG: Executing org.macports.fetch (fftw-3) ---> Verifying checksum(s) for fftw-3 DEBUG: Executing org.macports.checksum (fftw-3) ---> Checksumming fftw-3.1.2.tar.gz DEBUG: Correct (md5) checksum for fftw-3.1.2.tar.gz DEBUG: Correct (sha1) checksum for fftw-3.1.2.tar.gz DEBUG: Correct (rmd160) checksum for fftw-3.1.2.tar.gz ---> Extracting fftw-3 DEBUG: Executing org.macports.extract (fftw-3) ---> Extracting fftw-3.1.2.tar.gz DEBUG: setting option extract.args to /opt/local/var/macports/distfiles/fftw-3/fftw-3.1.2.tar.gz DEBUG: Environment: DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work" && gzip -dc /opt/local/var/macports/distfiles/fftw-3/fftw-3.1.2.tar.gz | /sw/bin/gnutar --no-same-owner -xf -' DEBUG: Executing org.macports.patch (fftw-3) ---> Configuring fftw-3 DEBUG: Executing org.macports.configure (fftw-3) DEBUG: Using compiler 'Mac OS X gcc 4.0' DEBUG: Environment: CFLAGS='-O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc -arch ppc64 -arch i386 -arch x86_64' CPPFLAGS='-I/opt/local/include' CXXFLAGS='-O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc -arch ppc64 -arch i386 -arch x86_64' CPP='/usr/bin/cpp-4.0' CXX='/usr/bin/g++-4.0' F90FLAGS='-O2' LDFLAGS='-L/opt/local/lib -arch ppc -arch ppc64 -arch i386 -arch x86_64' FCFLAGS='-O2' OBJC='/usr/bin/gcc-4.0' INSTALL='/usr/bin/install' OBJCFLAGS='-O2' FFLAGS='-O2' CC='/usr/bin/gcc-4.0' DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2" && ./configure --prefix=/opt/local --enable-type-prefix --enable-threads --enable-fma --disable-fortran --mandir=/opt/local/share/man --infodir=/opt/local/share/info --disable-dependency-tracking' checking for a BSD-compatible install... /usr/bin/install checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking build system type... i386-apple-darwin9.1.0 checking host system type... i386-apple-darwin9.1.0 checking for gcc... /usr/bin/gcc-4.0 checking for C compiler default output file name... configure: error: C compiler cannot create executables See `config.log' for more details. Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2" && ./configure --prefix=/opt/local --enable-type-prefix --enable-threads --enable-fma --disable-fortran --mandir=/opt/local/share/man --infodir=/opt/local/share/info --disable-dependency-tracking " returned error 77 Command output: checking for a BSD-compatible install... /usr/bin/install checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking build system type... i386-apple-darwin9.1.0 checking host system type... i386-apple-darwin9.1.0 checking for gcc... /usr/bin/gcc-4.0 checking for C compiler default output file name... configure: error: C compiler cannot create executables See `config.log' for more details. Warning: the following items did not execute (for fftw-3): org.macports.activate org.macports.configure org.macports.build org.macports.destroot org.macports.install Error: Status 1 encountered during processing.
It seems like something's broken. If it is my compiler, please help me figuring it out.
Thanks,
Andre
Attachments (3)
Change History (21)
Changed 17 years ago by andre.david@…
Attachment: | config.log added |
---|
comment:1 Changed 17 years ago by andre.david@…
comment:2 Changed 17 years ago by andre.david@…
Ok, I am actually debugging as I post. (Sorry for that.) I have used Monolingual to get rid of all ppc stuff on my macbook pro, hence no ppc arches in /Developer.
Therefore the question becomes: is there a way to define universal as i386+x86_64 (no ppc)? Or even better: create a variant for building both 32 and 64 bit version of the arch of the given arch--allbits, perhaps?
Thanks for your reading,
Andre
PS - I will be looking where the universal variants are defined...
comment:3 Changed 17 years ago by andre.david@…
Though I am not Tcl literate I nailed the location to /opt/local/share/macports/Tcl/port1.0/portconfigure.tcl, where
# internal functions to determine the "-arch xy" flags for the compiler # -> these should preferably get a more global scope, perhaps be user-configurable? set universal_archs {ppc ppc64 i386 x86_64}
I would second this. Or an alternative like "allbits" (tongue in cheek,) which gets set i386+x86_64 on intel and ppc+ppc64 on ppc.
Sounds plausible?
Unfortunately, the problem isn't over. Replacing the above line with
set universal_archs {i386 x86_64}
compiles what seems like all the code, but then brutally stops:
[lines omitted] /usr/bin/gcc-4.0 -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -I/opt/local/include -O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386 -arch x86_64 -D_THREAD_SAFE -c verify-r2r.c /usr/bin/gcc-4.0 -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -I/opt/local/include -O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386 -arch x86_64 -D_THREAD_SAFE -c verify-rdft2.c /usr/bin/gcc-4.0 -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -I/opt/local/include -O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386 -arch x86_64 -D_THREAD_SAFE -c verify.c /usr/bin/gcc-4.0 -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -I/opt/local/include -O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386 -arch x86_64 -D_THREAD_SAFE -c zero.c /usr/bin/gcc-4.0 -std=gnu99 -DHAVE_CONFIG_H -I. -I. -I.. -I/opt/local/include -O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386 -arch x86_64 -D_THREAD_SAFE -c my-getopt.c rm -f libbench2.a ar cru libbench2.a aligned-main.o allocate.o aset.o bench-main.o can-do.o caset.o dotens2.o info.o main.o mflops.o mp.o ovtpvt.o pow2.o problem.o report.o speed.o tensor.o timer.o timer2.o useropt.o util.o verify-dft.o verify-lib.o verify-r2r.o verify-rdft2.o verify.o zero.o my-getopt.o ranlib libbench2.a Making all in . /bin/sh ./libtool --tag=CC --mode=link /usr/bin/gcc-4.0 -std=gnu99 -O2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386 -arch x86_64 -D_THREAD_SAFE -L/opt/local/lib -arch i386 -arch x86_64 -o libfftw3.la -rpath /opt/local/lib -no-undefined -version-info 4:2:1 kernel/libkernel.la dft/libdft.la dft/codelets/libdft_codelets.la dft/codelets/standard/libdft_standard.la rdft/librdft.la rdft/codelets/librdft_codelets.la rdft/codelets/r2hc/librdft_codelets_r2hc.la rdft/codelets/hc2r/librdft_codelets_hc2r.la rdft/codelets/r2r/librdft_codelets_r2r.la reodft/libreodft.la api/libapi.la -lm mkdir .libs rm -fr .libs/libfftw3.lax mkdir .libs/libfftw3.lax rm -fr .libs/libfftw3.lax/libkernel.a mkdir .libs/libfftw3.lax/libkernel.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/kernel/.libs/libkernel.a libkernel.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libkernel.a/unfat-40929/libkernel.a-i386 && ar x libkernel.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libkernel.a/unfat-40929/libkernel.a-x86_64 && ar x libkernel.a) basename: extra operand `unfat-40929/libkernel.a-i386/assert.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/libdft.a mkdir .libs/libfftw3.lax/libdft.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/dft/.libs/libdft.a libdft.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libdft.a/unfat-40929/libdft.a-i386 && ar x libdft.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libdft.a/unfat-40929/libdft.a-x86_64 && ar x libdft.a) basename: extra operand `unfat-40929/libdft.a-i386/conf.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/libdft_codelets.a mkdir .libs/libfftw3.lax/libdft_codelets.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/dft/codelets/.libs/libdft_codelets.a libdft_codelets.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libdft_codelets.a/unfat-40929/libdft_codelets.a-i386 && ar x libdft_codelets.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libdft_codelets.a/unfat-40929/libdft_codelets.a-x86_64 && ar x libdft_codelets.a) basename: extra operand `unfat-40929/libdft_codelets.a-x86_64/n.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/libdft_standard.a mkdir .libs/libfftw3.lax/libdft_standard.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/dft/codelets/standard/.libs/libdft_standard.a libdft_standard.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libdft_standard.a/unfat-40929/libdft_standard.a-i386 && ar x libdft_standard.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libdft_standard.a/unfat-40929/libdft_standard.a-x86_64 && ar x libdft_standard.a) basename: extra operand `unfat-40929/libdft_standard.a-i386/n1_11.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/librdft.a mkdir .libs/libfftw3.lax/librdft.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/rdft/.libs/librdft.a librdft.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft.a/unfat-40929/librdft.a-i386 && ar x librdft.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft.a/unfat-40929/librdft.a-x86_64 && ar x librdft.a) basename: extra operand `unfat-40929/librdft.a-i386/conf.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/librdft_codelets.a mkdir .libs/libfftw3.lax/librdft_codelets.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/rdft/codelets/.libs/librdft_codelets.a librdft_codelets.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft_codelets.a/unfat-40929/librdft_codelets.a-i386 && ar x librdft_codelets.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft_codelets.a/unfat-40929/librdft_codelets.a-x86_64 && ar x librdft_codelets.a) basename: extra operand `unfat-40929/librdft_codelets.a-i386/r2hc.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/librdft_codelets_r2hc.a mkdir .libs/libfftw3.lax/librdft_codelets_r2hc.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/rdft/codelets/r2hc/.libs/librdft_codelets_r2hc.a librdft_codelets_r2hc.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft_codelets_r2hc.a/unfat-40929/librdft_codelets_r2hc.a-i386 && ar x librdft_codelets_r2hc.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft_codelets_r2hc.a/unfat-40929/librdft_codelets_r2hc.a-x86_64 && ar x librdft_codelets_r2hc.a) basename: extra operand `unfat-40929/librdft_codelets_r2hc.a-i386/hf2_32.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/librdft_codelets_hc2r.a mkdir .libs/libfftw3.lax/librdft_codelets_hc2r.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/rdft/codelets/hc2r/.libs/librdft_codelets_hc2r.a librdft_codelets_hc2r.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft_codelets_hc2r.a/unfat-40929/librdft_codelets_hc2r.a-i386 && ar x librdft_codelets_hc2r.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft_codelets_hc2r.a/unfat-40929/librdft_codelets_hc2r.a-x86_64 && ar x librdft_codelets_hc2r.a) basename: extra operand `unfat-40929/librdft_codelets_hc2r.a-i386/hb_12.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/librdft_codelets_r2r.a mkdir .libs/libfftw3.lax/librdft_codelets_r2r.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/rdft/codelets/r2r/.libs/librdft_codelets_r2r.a librdft_codelets_r2r.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft_codelets_r2r.a/unfat-40929/librdft_codelets_r2r.a-i386 && ar x librdft_codelets_r2r.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/librdft_codelets_r2r.a/unfat-40929/librdft_codelets_r2r.a-x86_64 && ar x librdft_codelets_r2r.a) basename: extra operand `unfat-40929/librdft_codelets_r2r.a-i386/e10_8.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/libreodft.a mkdir .libs/libfftw3.lax/libreodft.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/reodft/.libs/libreodft.a libreodft.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libreodft.a/unfat-40929/libreodft.a-i386 && ar x libreodft.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libreodft.a/unfat-40929/libreodft.a-x86_64 && ar x libreodft.a) basename: extra operand `unfat-40929/libreodft.a-i386/reodft00e-splitradix.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/libapi.a mkdir .libs/libfftw3.lax/libapi.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/api/.libs/libapi.a libapi.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libapi.a/unfat-40929/libapi.a-i386 && ar x libapi.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libapi.a/unfat-40929/libapi.a-x86_64 && ar x libapi.a) basename: extra operand `unfat-40929/libapi.a-i386/execute-dft-c2r.o' Try `basename --help' for more information. ar cru .libs/libfftw3.a ar: no archive members specified usage: ar -d [-TLsv] archive file ... ar -m [-TLsv] archive file ... ar -m [-abiTLsv] position archive file ... ar -p [-TLsv] archive [file ...] ar -q [-cTLsv] archive file ... ar -r [-cuTLsv] archive file ... ar -r [-abciuTLsv] position archive file ... ar -t [-TLsv] archive [file ...] ar -x [-ouTLsv] archive [file ...] make[2]: *** [libfftw3.la] 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/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2" && make all " returned error 2 Command output: rm -fr .libs/libfftw3.lax/libreodft.a mkdir .libs/libfftw3.lax/libreodft.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/reodft/.libs/libreodft.a libreodft.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libreodft.a/unfat-40929/libreodft.a-i386 && ar x libreodft.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libreodft.a/unfat-40929/libreodft.a-x86_64 && ar x libreodft.a) basename: extra operand `unfat-40929/libreodft.a-i386/reodft00e-splitradix.o' Try `basename --help' for more information. rm -fr .libs/libfftw3.lax/libapi.a mkdir .libs/libfftw3.lax/libapi.a Extracting /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/api/.libs/libapi.a libapi.a has multiple architectures i386 x86_64 (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libapi.a/unfat-40929/libapi.a-i386 && ar x libapi.a) (cd /opt/local/var/macports/build/_Users_adavid_macports-trunk_dports_math_fftw-3/work/fftw-3.1.2/.libs/libfftw3.lax/libapi.a/unfat-40929/libapi.a-x86_64 && ar x libapi.a) basename: extra operand `unfat-40929/libapi.a-i386/execute-dft-c2r.o' Try `basename --help' for more information. ar cru .libs/libfftw3.a ar: no archive members specified usage: ar -d [-TLsv] archive file ... ar -m [-TLsv] archive file ... ar -m [-abiTLsv] position archive file ... ar -p [-TLsv] archive [file ...] ar -q [-cTLsv] archive file ... ar -r [-cuTLsv] archive file ... ar -r [-abciuTLsv] position archive file ... ar -t [-TLsv] archive [file ...] ar -x [-ouTLsv] archive [file ...] make[2]: *** [libfftw3.la] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Warning: the following items did not execute (for fftw-3): org.macports.activate org.macports.build org.macports.destroot org.macports.install Error: Status 1 encountered during processing.
I guess this provides grounds for an actual request that universal is broken in fftw-3.
Cheers,
Andre
comment:4 Changed 17 years ago by jmpalacios (Juan Manuel Palacios)
Milestone: | → Port Bugs |
---|
comment:5 Changed 17 years ago by skymoo (Adam Mercer)
Cc: | ram@… added |
---|---|
Owner: | changed from macports-tickets@… to takeshi@… |
assigning to maintainer
comment:6 Changed 17 years ago by tenomoto (Takeshi Enomoto)
Resolution: | → wontfix |
---|---|
Status: | new → closed |
I confirmed that fftw-3 is not universal. It seems difficult for me to make it so since fftw-3 tries to optimize for an architecture. I set universal_variant no at this time. Let me know if I am in the wrong and there is a way.
comment:7 Changed 16 years ago by Veence (Vincent)
fftw-3 cannot be made universal an easy way. When I try to add a universal variant and blindly compile it with -arch i386 -arch x86_64, gcc don't even go further the first compilation phase because the command line uses -M options which are forbidden with multiple archs (the preprocessor output differs according to the arch being compiled for). There is no other way to build a fftw-3 universal but to create a per arch temp directory, compiling each version for one arch, and then use lipo to gather the multiple .dylib files into a universal one. I wonder if this can be done with a script under MacPorts 1.7.
comment:8 Changed 16 years ago by Veence (Vincent)
I have a fix. I put the modified Portfile, which based on the graphics/cairo solution, here:
ftp://ftp.cimaxonline.fr/Portfile_fftw3_universal
Please try it out and let me know.
V.
comment:9 follow-up: 13 Changed 16 years ago by skymoo (Adam Mercer)
Resolution: | wontfix |
---|---|
Status: | closed → reopened |
universal Portfile, from 10.50@…, attached
I'll test this but it will probably be next week before I get a chance, I imagine the same will work for fftw-3-single?
comment:10 Changed 16 years ago by skymoo (Adam Mercer)
Owner: | changed from takeshi@… to ram@… |
---|---|
Status: | reopened → new |
I'll check this
comment:11 Changed 16 years ago by skymoo (Adam Mercer)
Cc: | takeshi@… added; ram@… removed |
---|---|
Keywords: | fftw-3 removed |
Port: | fftw-3 fftw-3-single added |
comment:12 Changed 16 years ago by skymoo (Adam Mercer)
Cc: | 10.50@… added |
---|
comment:13 Changed 16 years ago by Veence (Vincent)
Replying to ram@…:
universal Portfile, from 10.50@…, attached
I'll test this but it will probably be next week before I get a chance, I imagine the same will work for fftw-3-single?
Normally, yes. This is a fairly general universal build framework solution: the code is duplicated in subdirectories corresponding to each arch, then separately configured with the right arch flag and compiled therein, then the results are joined through lipo into a universal file. It should be satisfactory for build processes that use -M or -E or any other option not compatible with multiple arch switches in gcc.
V.
comment:14 Changed 16 years ago by tenomoto (Takeshi Enomoto)
I will test your Portfile. Could take a while since I am busy. Could you diff -u and upload the patch? The added part is straightforward but not short. I wonder if your approach is incorporated in port command since it may be applicable to other similar ports.
Changed 16 years ago by Veence (Vincent)
Attachment: | patch.fftw3 added |
---|
patch for universal variant of fftw-3
comment:15 Changed 16 years ago by Veence (Vincent)
I have attached the patch in universal diff Sorry for being late, I was away these days. Thanks for testing it
comment:16 Changed 16 years ago by tenomoto (Takeshi Enomoto)
Resolution: | → fixed |
---|---|
Status: | new → closed |
I confirmed that it works. I have just committed. Thanks a lot.
Attached the fftw-3 config.log