8000 Issue #1222585: Added LDCXXSHARED for C++ support · python/cpython@0000295 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0000295

Browse files
author
Tarek Ziadé
committed
Issue #1222585: Added LDCXXSHARED for C++ support
1 parent dd2fedc commit 0000295

File tree

3 files changed

+53
-15
lines changed

3 files changed

+53
-15
lines changed

Makefile.pre.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ LIBP= $(LIBDIR)/python$(VERSION)
107107
SO= @SO@
108108
LDSHARED= @LDSHARED@
109109
BLDSHARED= @BLDSHARED@
110+
LDCXXSHARED= @LDCXXSHARED@
110111
DESTSHARED= $(BINLIBDEST)/lib-dynload
111112

112113
# Executable suffix (.exe on Windows and Mac OS X)

Misc/NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ What's New in Python 2.7 beta 1?
1212
Core and Builtins
1313
-----------------
1414

15+
- Issue #1222585: Added LDCXXSHARED for C++ support. Patch by Arfrever.
16+
1517
- Raise a TypeError when trying to delete a T_STRING_INPLACE struct member.
1618

1719
- Issue #7994: Issue a PendingDeprecationWarning if object.__format__

configure.in

Lines changed: 50 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1719,6 +1719,7 @@ esac
17191719
# Set info about shared libraries.
17201720
AC_SUBST(SO)
17211721
AC_SUBST(LDSHARED)
1722+
AC_SUBST(LDCXXSHARED)
17221723
AC_SUBST(BLDSHARED)
17231724
AC_SUBST(CCSHARED)
17241725
AC_SUBST(LINKFORSHARED)
@@ -1771,36 +1772,47 @@ then
17711772
IRIX/5*) LDSHARED="ld -shared";;
17721773
IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
17731774
SunOS/5*)
1774-
if test "$GCC" = "yes"
1775-
then LDSHARED='$(CC) -shared'
1776-
else LDSHARED='$(CC) -G';
1775+
if test "$GCC" = "yes" ; then
1776+
LDSHARED='$(CC) -shared'
1777+
LDCXXSHARED='$(CXX) -shared'
1778+
else
1779+
LDSHARED='$(CC) -G'
1780+
LDCXXSHARED='$(CXX) -G'
17771781
fi ;;
17781782
hp*|HP*)
1779-
if test "$GCC" = "yes"
1780-
then LDSHARED='$(CC) -shared'
1781-
else LDSHARED='ld -b';
1783+
if test "$GCC" = "yes" ; then
1784+
LDSHARED='$(CC) -shared'
1785+
LDCXXSHARED='$(CXX) -shared'
1786+
else
1787+
LDSHARED='ld -b'
17821788
fi ;;
17831789
OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
17841790
Darwin/1.3*)
17851791
LDSHARED='$(CC) $(LDFLAGS) -bundle'
1792+
LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle'
17861793
if test "$enable_framework" ; then
17871794
# Link against the framework. All externals should be defined.
17881795
BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
17891796
LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1797+
LDCXXSHARED="$LDCXXSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
17901798
else
17911799
# No framework. Ignore undefined symbols, assuming they come from Python
17921800
LDSHARED="$LDSHARED -undefined suppress"
1801+
LDCXXSHARED="$LDCXXSHARED -undefined suppress"
17931802
fi ;;
17941803
Darwin/1.4*|Darwin/5.*|Darwin/6.*)
17951804
LDSHARED='$(CC) $(LDFLAGS) -bundle'
1805+
LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle'
17961806
if test "$enable_framework" ; then
17971807
# Link against the framework. All externals should be defined.
17981808
BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
17991809
LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1810+
LDCXXSHARED="$LDCXXSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
18001811
else
18011812
# No framework, use the Python app as bundle-loader
18021813
BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
18031814
LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1815+
LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
18041816
fi ;;
18051817
Darwin/*)
18061818
# Use -undefined dynamic_lookup whenever possible (10.3 and later).
@@ -1812,56 +1824,79 @@ then
18121824
LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
18131825
fi
18141826
LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1827+
LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle -undefined dynamic_lookup'
18151828
BLDSHARED="$LDSHARED"
18161829
else
18171830
LDSHARED='$(CC) $(LDFLAGS) -bundle'
1831+
LDCXXSHARED='$(CXX) $(LDFLAGS) -bundle'
18181832
if test "$enable_framework" ; then
18191833
# Link against the framework. All externals should be defined.
18201834
BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
18211835
LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1836+
LDCXXSHARED="$LDCXXSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
18221837
else
18231838
# No framework, use the Python app as bundle-loader
18241839
BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
18251840
LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1841+
LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
18261842
fi
18271843
fi
18281844
;;
1829-
Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
1830-
BSD/OS*/4*) LDSHARED="gcc -shared";;
1845+
Linux*|GNU*|QNX*)
1846+
LDSHARED='$(CC) -shared'
1847+
LDCXXSHARED='$(CXX) -shared';;
1848+
BSD/OS*/4*)
1849+
LDSHARED="gcc -shared"
1850+
LDCXXSHARED="g++ -shared";;
18311851
FreeBSD*)
18321852
if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
18331853
then
18341854
LDSHARED='$(CC) -shared ${LDFLAGS}'
1855+
LDCXXSHARED='$(CXX) -shared ${LDFLAGS}'
18351856
else
18361857
LDSHARED="ld -Bshareable ${LDFLAGS}"
18371858
fi;;
18381859
OpenBSD*)
18391860
if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
18401861
then
18411862
LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1863+
LDCXXSHARED='$(CXX) -shared $(CCSHARED) ${LDFLAGS}'
18421864
else
18431865
case `uname -r` in
18441866
[[01]].* | 2.[[0-7]] | 2.[[0-7]].*)
18451867
LDSHARED="ld -Bshareable ${LDFLAGS}"
18461868
;;
18471869
*)
18481870
LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1871+
LDCXXSHARED='$(CXX) -shared $(CCSHARED) ${LDFLAGS}'
18491872 23DA
;;
18501873
esac
18511874
fi;;
1852-
NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1875+
NetBSD*|DragonFly*)
1876+
LDSHARED="cc -shared ${LDFLAGS}"
1877+
LDCXXSHARED="c++ -shared ${LDFLAGS}";;
DF82 18531878
OpenUNIX*|UnixWare*)
1854-
if test "$GCC" = "yes"
1855-
then LDSHARED='$(CC) -shared'
1856-
else LDSHARED='$(CC) -G'
1879+
if test "$GCC" = "yes" ; then
1880+
LDSHARED='$(CC) -shared'
1881+
LDCXXSHARED='$(CXX) -shared'
1882+
else
1883+
LDSHARED='$(CC) -G'
1884+
LDCXXSHARED='$(CXX) -G'
18571885
fi;;
1858-
SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1859-
CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1860-
atheos*) LDSHARED="gcc -shared";;
1886+
SCO_SV*)
1887+
LDSHARED='$(CC) -Wl,-G,-Bexport'
1888+
LDCXXSHARED='$(CXX) -Wl,-G,-Bexport';;
1889+
CYGWIN*)
1890+
LDSHARED="gcc -shared -Wl,--enable-auto-image-base"
1891+
LDCXXSHARED="g++ -shared -Wl,--enable-auto-image-base";;
1892+
atheos*)
1893+
LDSHARED="gcc -shared"
1894+
LDCXXSHARED="g++ -shared";;
18611895
*) LDSHARED="ld";;
18621896
esac
18631897
fi
18641898
AC_MSG_RESULT($LDSHARED)
1899+
LDCXXSHARED=${LDCXXSHARED-$LDSHARED}
18651900
BLDSHARED=${BLDSHARED-$LDSHARED}
18661901
# CCSHARED are the C *flags* used to create objects to go into a shared
18671902
# library (module) -- this is only needed for a few systems

0 commit comments

Comments
 (0)
0