Why do I get "unsupported architecture" errors trying to install a Python library in OSX?

5,672

Usually this is due to the -arch ppc flag being passed into the build flags. I suspect some of this code may have come from legacy PowerPC days, when OSX ran on the PowerPC instead of x86/Intel platform.

The issue starts here:

C compiler: /usr/bin/clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch ppc -arch i386 -arch x86_64 -g -O2

Try building with an empty CFLAGS variable:

CFLAGS="" f2py-2.7 -c fftfit.pyf *.f

If this works, then it is possible your build environment is inherting some compiler flags from somewhere else...

Share:
5,672

Related videos on Youtube

Emma518
Author by

Emma518

Updated on September 18, 2022

Comments

  • Emma518
    Emma518 over 1 year

    I am trying to install a Python library in the Presto package, source http://www.cv.nrao.edu/~sransom/presto/

    Using 'gmake fftfit' I get the following error:

    cd fftfit_src ; f2py-2.7 -c fftfit.pyf *.f
    running build
    running config_cc
    unifing config_cc, config, build_clib, build_ext, build commands --compiler options
    running config_fc
    unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
    running build_src
    build_src
    building extension "fftfit" sources
    creating /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7
    f2py options: []
    f2py: fftfit.pyf
    Reading fortran codes...
        Reading file 'fftfit.pyf' (format:free)
    Post-processing...
        Block: fftfit
                Block: cprof
                Block: fftfit
    Post-processing (stage 2)...
    Building modules...
        Building module "fftfit"...
            Constructing wrapper function "cprof"...
              c,amp,pha = cprof(y,[nmax,nh])
            Constructing wrapper function "fftfit"...
              shift,eshift,snr,esnr,b,errb,ngood = fftfit(prof,s,phi,[nmax])
        Wrote C/API module "fftfit" to file     "/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-  2.7/fftfitmodule.c"
      adding '/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7/fortranobject.c' to sources.
      adding '/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7' to include_dirs.
    copying /Library/Python/2.7/site-packages/numpy-1.8.2-py2.7-macosx-10.9-    intel.egg/numpy/f2py/src/fortranobject.c ->    /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7
    copying /Library/Python/2.7/site-packages/numpy-1.8.2-py2.7-macosx-10.9-intel.egg/numpy/f2py/src/fortranobject.h ->   /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7
    build_src: building npy-pkg config files
    running build_ext
    customize UnixCCompiler
    customize UnixCCompiler using build_ext
    customize Gnu95FCompiler
    Found executable /usr/local/bin/gfortran
    customize Gnu95FCompiler
    customize Gnu95FCompiler using build_ext
    building 'fftfit' extension
    compiling C sources
    C compiler: /usr/bin/clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch ppc -arch i386 -arch x86_64 -g -O2
    
    creating /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/var
    creating /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/var/folders
    creating /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/var/folders/sx
    creating /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp
    creating  /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h00 00gp/T
    creating  /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h00 00gp/T/tmp9MmLz8
    creating  /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h00 00gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7
    compile options: '-I/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9- x86_64-2.7 -I/Library/Python/2.7/site-packages/numpy-1.8.2-py2.7-macosx-10.9- intel.egg/numpy/core/include - I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c'
    clang: /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64- 2.7/fftfitmodule.c
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from   /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:19:
    In file included from  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/    5.1/include/limits.h:38:
    In file included from /usr/include/limits.h:63:
    /usr/include/sys/cdefs.h:658:2: error: Unsupported architecture
    #error Unsupported architecture
     ^
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:19:
    In file included from  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/ 5.1/include/limits.h:38:
    In file included from /usr/include/limits.h:64:
    /usr/include/machine/limits.h:8:2: error: architecture not supported
    #error architecture not supported
     ^
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from    /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:33:
    In file included from /usr/include/stdio.h:67:
    In file included from /usr/include/_types.h:27:
    In file included from /usr/include/sys/_types.h:33:
    /usr/include/machine/_types.h:34:2: error: architecture not supported
    #error architecture not supported
     ^
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from   /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:33:
    In file included from /usr/include/stdio.h:67:
    In file included from /usr/include/_types.h:27:
    /usr/include/sys/_types.h:94:9: error: unknown type name '__int64_t'
    typedef __int64_t       __darwin_blkcnt_t;      /* total blocks */
            ^
    /usr/include/sys/_types.h:95:9: error: unknown type name '__int32_t'
    typedef __int32_t       __darwin_blksize_t;     /* preferred block size */
            ^
    /usr/include/sys/_types.h:96:9: error: unknown type name '__int32_t'
    typedef __int32_t       __darwin_dev_t;         /* dev_t */
            ^
    /usr/include/sys/_types.h:99:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_gid_t;         /* [???] process and group IDs */
            ^
    /usr/include/sys/_types.h:100:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_id_t;          /* [XSI] pid_t, uid_t, or gid_t*/
            ^
    /usr/include/sys/_types.h:101:9: error: unknown type name '__uint64_t'
    typedef __uint64_t      __darwin_ino64_t;       /* [???] Used for 64 bit inodes */
            ^
    /usr/include/sys/_types.h:107:9: error: unknown type name '__darwin_natural_t'
    typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
            ^
    /usr/include/sys/_types.h:109:9: error: unknown type name '__uint16_t'
    typedef __uint16_t      __darwin_mode_t;        /* [???] Some file attributes */
            ^
    /usr/include/sys/_types.h:110:9: error: unknown type name '__int64_t'
    typedef __int64_t       __darwin_off_t;         /* [???] Used for file sizes */
            ^
    /usr/include/sys/_types.h:111:9: error: unknown type name '__int32_t'
    typedef __int32_t       __darwin_pid_t;         /* [???] process and group IDs */
            ^
    /usr/include/sys/_types.h:131:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_sigset_t;      /* [???] signal set */
            ^
    /usr/include/sys/_types.h:132:9: error: unknown type name '__int32_t'
    typedef __int32_t       __darwin_suseconds_t;   /* [???] microseconds */
            ^
    /usr/include/sys/_types.h:133:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_uid_t;         /* [???] user IDs */
            ^
    /usr/include/sys/_types.h:134:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_useconds_t;    /* [???] microseconds */
            ^
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from  /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:33:
    In file included from /usr/include/stdio.h:71:
    /usr/include/sys/_types/_va_list.h:31:9: error: unknown type name '__darwin_va_list'; did you  mean '__builtin_va_list'?
    typedef __darwin_va_list va_list;
            ^
    note: '__builtin_va_list' declared here
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from  /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:33:
    In file included from /usr/include/stdio.h:72:
    /usr/include/sys/_types/_size_t.h:30:9: error: unknown type name '__darwin_size_t'; did you mean    '__darwin_ino_t'?
    typedef __darwin_size_t        size_t; 
            ^
    /usr/include/sys/_types.h:103:26: note: '__darwin_ino_t' declared here
    typedef __darwin_ino64_t __darwin_ino_t;        /* [???] Used for inodes */
                         ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    20 errors generated.
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from   /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:19:
    In file included from  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.1/include/limits.h:38:
    In file included from /usr/include/limits.h:63:
    /usr/include/sys/cdefs.h:658:2: error: Unsupported architecture
    #error Unsupported architecture
     ^
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from  /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:19:
    In file included from  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/ 5.1/include/limits.h:38:
    In file included from /usr/include/limits.h:64:
    /usr/include/machine/limits.h:8:2: error: architecture not supported
    #error architecture not supported
     ^
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from  /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:33:
    In file included from /usr/include/stdio.h:67:
    In file included from /usr/include/_types.h:27:
    In file included from /usr/include/sys/_types.h:33:
    /usr/include/machine/_types.h:34:2: error: architecture not supported
    #error architecture not supported
     ^
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from   /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:33:
    In file included from /usr/include/stdio.h:67:
    In file included from /usr/include/_types.h:27:
    /usr/include/sys/_types.h:94:9: error: unknown type name '__int64_t'
    typedef __int64_t       __darwin_blkcnt_t;      /* total blocks */
            ^
    /usr/include/sys/_types.h:95:9: error: unknown type name '__int32_t'
    typedef __int32_t       __darwin_blksize_t;     /* preferred block size */
            ^
    /usr/include/sys/_types.h:96:9: error: unknown type name '__int32_t'
    typedef __int32_t       __darwin_dev_t;         /* dev_t */
            ^
    /usr/include/sys/_types.h:99:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_gid_t;         /* [???] process and group IDs */
            ^
    /usr/include/sys/_types.h:100:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_id_t;          /* [XSI] pid_t, uid_t, or gid_t*/
            ^
    /usr/include/sys/_types.h:101:9: error: unknown type name '__uint64_t'
    typedef __uint64_t      __darwin_ino64_t;       /* [???] Used for 64 bit inodes */
            ^
    /usr/include/sys/_types.h:107:9: error: unknown type name '__darwin_natural_t'
    typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
            ^
    /usr/include/sys/_types.h:109:9: error: unknown type name '__uint16_t'
    typedef __uint16_t      __darwin_mode_t;        /* [???] Some file attributes */
            ^
    /usr/include/sys/_types.h:110:9: error: unknown type name '__int64_t'
    typedef __int64_t       __darwin_off_t;         /* [???] Used for file sizes */
            ^
    /usr/include/sys/_types.h:111:9: error: unknown type name '__int32_t'
    typedef __int32_t       __darwin_pid_t;         /* [???] process and group IDs */
            ^
    /usr/include/sys/_types.h:131:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_sigset_t;      /* [???] signal set */
            ^
    /usr/include/sys/_types.h:132:9: error: unknown type name '__int32_t'
    typedef __int32_t       __darwin_suseconds_t;   /* [???] microseconds */
            ^
    /usr/include/sys/_types.h:133:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_uid_t;         /* [???] user IDs */
            ^
    /usr/include/sys/_types.h:134:9: error: unknown type name '__uint32_t'
    typedef __uint32_t      __darwin_useconds_t;    /* [???] microseconds */
            ^
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:33:
    In file included from /usr/include/stdio.h:71:
    /usr/include/sys/_types/_va_list.h:31:9: error: unknown type name '__darwin_va_list'; did you  mean  '__builtin_va_list'?
    typedef __darwin_va_list va_list;
            ^
    note: '__builtin_va_list' declared here
    In file included from /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7/fftfitmodule.c:16:
    In file included from  /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h:33:
    In file included from /usr/include/stdio.h:72:
    /usr/include/sys/_types/_size_t.h:30:9: error: unknown type name '__darwin_size_t'; did you mean  '__darwin_ino_t'?
    typedef __darwin_size_t        size_t; 
            ^
    /usr/include/sys/_types.h:103:26: note: '__darwin_ino_t' declared here
    typedef __darwin_ino64_t __darwin_ino_t;        /* [???] Used for inodes */
                             ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    20 errors generated.
    error: Command "/usr/bin/clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch ppc -arch   i386 -arch x86_64 -g -O2 -I/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx- 10.9-x86_64-2.7 -I/Library/Python/2.7/site-packages/numpy-1.8.2-py2.7-macosx-10.9- intel.egg/numpy/core/include - I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c  /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7/fftfitmodule.c  -o  /var/folders/sx/j_l_qvys4bv00_38pfvy3m8h0000gp/T/tmp9MmLz8/var/folders/sx/j_l_qvys4bv00_38pfvy3m8h00 00gp/T/tmp9MmLz8/src.macosx-10.9-x86_64-2.7/fftfitmodule.o" failed with exit status 1
    Makefile:5: recipe for target 'fftfit' failed
    gmake: *** [fftfit] Error 1
    

    How can I solve this architecture problem?

  • Emma518
    Emma518 over 9 years
    That is the version of Python that I am currently running but I am still getting that error.
  • Lauren
    Lauren over 9 years
    Are you trying to build this through XCode? If you do not have all of the architectures installed on your system, you won't be able to cross compile the PPC architecture, and as far as I know, XCode 4.0+ dropped supported for ppc altogether. This is a common issue with numpy from what I see: github.com/numpy/numpy/issues/1685
  • Lauren
    Lauren over 9 years
    I just attempted to build this extension by hand, using Python 2.7 and succeeded. I then did an export CFLAGS="-arch ppc" and the build failed (as I would expect, as I don't have PowerPC headers in my build environment) the same way yours did. Are you positive that you don't have any CFLAGS that are getting inherited in your build environment that get passed down to f2py-2.7??