Opened 16 years ago

Closed 15 years ago

Last modified 15 years ago

#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)

config.log (10.1 KB) - added by andre.david@… 16 years ago.
Portfile (4.2 KB) - added by skymoo (Adam Mercer) 15 years ago.
universal Portfile
patch.fftw3 (2.5 KB) - added by Veence (Vincent) 15 years ago.
patch for universal variant of fftw-3

Download all attachments as: .zip

Change History (21)

Changed 16 years ago by andre.david@…

Attachment: config.log added

comment:1 Changed 16 years ago by andre.david@…

Attached the fftw-3 config.log

comment:2 Changed 16 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 16 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 16 years ago by jmpp@…

Milestone: Port Bugs

comment:5 Changed 16 years ago by skymoo (Adam Mercer)

Cc: ram@… added
Owner: changed from macports-tickets@… to takeshi@…

assigning to maintainer

comment:6 Changed 16 years ago by tenomoto (Takeshi Enomoto)

Resolution: wontfix
Status: newclosed

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 15 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 15 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.

Changed 15 years ago by skymoo (Adam Mercer)

Attachment: Portfile added

universal Portfile

comment:9 Changed 15 years ago by skymoo (Adam Mercer)

Resolution: wontfix
Status: closedreopened

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 15 years ago by skymoo (Adam Mercer)

Owner: changed from takeshi@… to ram@…
Status: reopenednew

I'll check this

comment:11 Changed 15 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 15 years ago by skymoo (Adam Mercer)

Cc: 10.50@… added

comment:13 in reply to:  9 Changed 15 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 15 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 15 years ago by Veence (Vincent)

Attachment: patch.fftw3 added

patch for universal variant of fftw-3

comment:15 Changed 15 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 15 years ago by tenomoto (Takeshi Enomoto)

Resolution: fixed
Status: newclosed

I confirmed that it works. I have just committed. Thanks a lot.

comment:17 Changed 15 years ago by skymoo (Adam Mercer)

applied to fftw-3-single in r44060

comment:18 Changed 15 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.