Issue #9437: Fix building C extensions with non-default LDFLAGS.
This commit is contained in:
parent
19f8edc39d
commit
dbec780a0b
|
@ -359,6 +359,11 @@ def parse_makefile(fn, g=None):
|
|||
|
||||
fp.close()
|
||||
|
||||
# strip spurious spaces
|
||||
for k, v in done.items():
|
||||
if isinstance(v, str):
|
||||
done[k] = v.strip()
|
||||
|
||||
# save the results in the global dictionary
|
||||
g.update(done)
|
||||
return g
|
||||
|
|
|
@ -296,6 +296,11 @@ def _parse_makefile(filename, vars=None):
|
|||
# bogus variable reference; just drop it since we can't deal
|
||||
variables.remove(name)
|
||||
|
||||
# strip spurious spaces
|
||||
for k, v in done.items():
|
||||
if isinstance(v, str):
|
||||
done[k] = v.strip()
|
||||
|
||||
# save the results in the global dictionary
|
||||
vars.update(done)
|
||||
return vars
|
||||
|
|
|
@ -112,8 +112,8 @@ LIBP= $(LIBDIR)/python$(VERSION)
|
|||
|
||||
# Symbols used for using shared libraries
|
||||
SO= @SO@
|
||||
LDSHARED= @LDSHARED@
|
||||
BLDSHARED= @BLDSHARED@
|
||||
LDSHARED= @LDSHARED@ $(PY_LDFLAGS)
|
||||
BLDSHARED= @BLDSHARED@ $(PY_LDFLAGS)
|
||||
LDCXXSHARED= @LDCXXSHARED@
|
||||
DESTSHARED= $(BINLIBDEST)/lib-dynload
|
||||
|
||||
|
@ -429,8 +429,8 @@ platform: $(BUILDPYTHON)
|
|||
# Build the shared modules
|
||||
sharedmods: $(BUILDPYTHON)
|
||||
@case $$MAKEFLAGS in \
|
||||
*s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(PY_LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
|
||||
*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(PY_LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
|
||||
*s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
|
||||
*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
|
||||
esac
|
||||
|
||||
# Build static library
|
||||
|
@ -447,10 +447,10 @@ $(LIBRARY): $(LIBRARY_OBJS)
|
|||
|
||||
libpython$(VERSION).so: $(LIBRARY_OBJS)
|
||||
if test $(INSTSONAME) != $(LDLIBRARY); then \
|
||||
$(BLDSHARED) $(PY_LDFLAGS) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
|
||||
$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
|
||||
$(LN) -f $(INSTSONAME) $@; \
|
||||
else \
|
||||
$(BLDSHARED) $(PY_LDFLAGS) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
|
||||
$(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
|
||||
fi
|
||||
|
||||
libpython$(VERSION).dylib: $(LIBRARY_OBJS)
|
||||
|
@ -458,7 +458,7 @@ libpython$(VERSION).dylib: $(LIBRARY_OBJS)
|
|||
|
||||
|
||||
libpython$(VERSION).sl: $(LIBRARY_OBJS)
|
||||
$(LDSHARED) $(PY_LDFLAGS) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
|
||||
$(LDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
|
||||
|
||||
# Copy up the gdb python hooks into a position where they can be automatically
|
||||
# loaded by gdb during Lib/test/test_gdb.py
|
||||
|
@ -504,7 +504,7 @@ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
|
|||
# for a shared core library; otherwise, this rule is a noop.
|
||||
$(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
|
||||
if test -n "$(DLLLIBRARY)"; then \
|
||||
$(LDSHARED) $(PY_LDFLAGS) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
|
||||
$(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
|
||||
$(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
|
||||
else true; \
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue