-
Notifications
You must be signed in to change notification settings - Fork 80
Description
I am trying to build Inline::Python
on macOS 12.0.1. I installed perl 5.34.0 with perlbrew before I upgraded my mac from 11.4 to 12.0, this can be seen by running
$ perl -MData::Dumper -MConfig -E 'print Dumper (\%Config)' | grep macosx
'ccflags' => '-fno-common -DPERL_DARWIN -mmacosx-version-min=11.4 -fno-strict-aliasing -pipe -fstack-protector-strong -DPERL_USE_SAFE_PUTENV',
'cppflags' => '-fno-common -DPERL_DARWIN -mmacosx-version-min=11.4 -fno-strict-aliasing -pipe -fstack-protector-strong',
'lddlflags' => ' -mmacosx-version-min=11.4 -bundle -undefined dynamic_lookup -fstack-protector-strong',
'ldflags' => ' -mmacosx-version-min=11.4 -fstack-protector-strong',
'ccflags_nolargefiles' => '-fno-common -DPERL_DARWIN -mmacosx-version-min=11.4 -fno-strict-aliasing -pipe -fstack-protector-strong -DPERL_USE_SAFE_PUTENV',
'ldflags_nolargefiles' => ' -mmacosx-version-min=11.4 -fstack-protector-strong',
where -mmacosx-version-min=11.4
indicates that perl was built on macOS 11.4. I tried to figure out the meaning of this compiler flag but I could find no clear explanations on google. As I understand, it will trigger compiler warnings from clang
if I am trying to link with a library that is built after macOS 11.4. But then again, why is the flag then not called -mmacosx-version-max
? I am confused.
Anyway, after upgrading my mac to 12.0, I installed a new python library with pyenv
, and if I now try to build Inline::Python
I get the following warnings from clang
when running make
:
[...]
LD_RUN_PATH="/Users/hakonhaegland/.pyenv/versions/3.9.7/lib/python3.9/config-3.9-darwin" cc -Wl,-rpath,"/Users/hakonhaegland/.pyenv/versions/3.9.7/lib/python3.9/config-3.9-darwin" -mmacosx-version-min=11.4 -bundle -undefined dynamic_lookup -fstack-protector-strong Python.o py2pl.o perlmodule.o util.o -o blib/arch/auto/Inline/Python/Python.bundle \
-L/Users/hakonhaegland/.pyenv/versions/3.9.7/lib/python3.9/config-3.9-darwin -lpython3.9 -ldl -Wl,-framework -Wl,CoreFoundation \
ld: warning: object file (/Users/hakonhaegland/.pyenv/versions/3.9.7/lib/python3.9/config-3.9-darwin/libpython3.9.a(boolobject.o)) was built for newer macOS version (12.0) than being linked (11.4)
ld: warning: object file (/Users/hakonhaegland/.pyenv/versions/3.9.7/lib/python3.9/config-3.9-darwin/libpython3.9.a(bytesobject.o)) was built for newer macOS version (12.0) than being linked (11.4)
ld: warning: object file (/Users/hakonhaegland/.pyenv/versions/3.9.7/lib/python3.9/config-3.9-darwin/libpython3.9.a(object.o)) was built for newer macOS version (12.0) than being linked (11.4)
ld: warning: object file (/Users/hakonhaegland/.pyenv/versions/3.9.7/lib/python3.9/config-3.9-darwin/libpython3.9.a(dictobject.o)) was built for newer macOS version (12.0) than being linked (11.4)
ld: warning: object file (/Users/hakonhaegland/.pyenv/versions/3.9.7/lib/python3.9/config-3.9-darwin/libpython3.9.a(errors.o)) was built for newer macOS version (12.0) than being linked (11.4)
[...]
What is the best approach to avoid this warning ? (The warning disappears if I remove -mmacosx-version-min=11.4
from the above cc
command line, or if I change the flag to -mmacosx-version-min=12.0
.) Is this something that should be changed in ExtUtils::MakeMaker
or in the Makefile.PL
of Inline::Python
?