Am 07.03.22 um 17:22 schrieb Robin Becker:

I use brew to install freetype version 2.11.1.

gcc -bundle -undefined dynamic_lookup -g -arch arm64
     build/temp.macosx-11.0-arm64-3.9/src/rl_addons/renderPM/_renderPM.o
     build/temp.macosx-11.0-arm64-3.9/src/rl_addons/renderPM/gt1/gt1-dict.o
     
build/temp.macosx-11.0-arm64-3.9/src/rl_addons/renderPM/gt1/gt1-namecontext.o
     '''''''other compiled code
     
build/temp.macosx-11.0-arm64-3.9/src/rl_addons/renderPM/libart_lgpl/art_vpath_dash.o
     -L/usr/local/lib
     -L/usr/lib
     -L/Library/Frameworks/Python.framework/Versions/3.9/lib
    -lfreetype -o build/lib.macosx-11.0-arm64-3.9/reportlab/graphics/_renderPM.cpython-39-darwin.so

ld: warning: ignoring file /usr/local/lib/libfreetype.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64

The above message seems bizarre; everything is compiled for arm64, but gcc doesn't want to use an arm64 dylib.

I would interpret this as: the host is runnig in intel, by doing the "brew install" it installs the intel version of freetype into /usr/local/lib/ ; then you cross-compile the python extension for ARM, but -lfreetype picks up the host version.

On macOS it is not mandatory that all symbols in a .dylib are resolved. I would guess that the resulting file will not work on M1 macs. YOu can check by

otool -L /path/toyour.dylib

which libraries are referenced. If you use freetype functions in your C code and do not see it referenced, then the lib will not work.

Maybe you can install an ARM-version of freetype, or compile it from source during your build process?

        Christian

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to