I'm trying to build a fftw dynamic library for macOS/x86 on a macOS/arm system. 
I am able to build a dynamic library for arm and a static library for x86, but 
unable to build a dynamic library for x86.

This code builds a static library for x86:

export CFLAGS="-arch x86_64"
./configure --host=x86_64-apple-macos10.10 --target=x86_64-apple-macos10.10

This code should also build a dynamic library, but it does not:

export CFLAGS="-arch x86_64"
./configure --host=x86_64-apple-macos10.10 --target=x86_64-apple-macos10.10 
--enable-shared

The configure log says some unexpected things:

checking whether the gcc linker 
(/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld)
 supports shared libraries... no
checking if libtool supports shared libraries... no

When building for arm (i.e., not cross compiling), these say yes.

I’m a complete gnub when it comes to autoconf and similar tools, but it looks 
like this could be a bug.

I also noticed something odd in the configure log:

configure:4614: checking whether we are cross compiling
configure:4622: gcc -o conftest -arch x86_64   conftest.c  >&5
configure:4626: $? = 0
configure:4633: ./conftest
configure:4637: $? = 0
configure:4652: result: no

It fails to recognize cross compilation because the cross compiled executable 
actually runs on macOS.

I don’t know if this is related.

Just out of curiosity, why do I need to set CFLAGS? Doesn’t the host and target 
provide enough information?


Reply via email to