]> git.pld-linux.org Git - packages/python.git/blob - python-shared-lib.patch
- updated for Python 2.2.2
[packages/python.git] / python-shared-lib.patch
1 diff -Nur Python-2.2.2.orig/Makefile.pre.in Python-2.2.2/Makefile.pre.in
2 --- Python-2.2.2.orig/Makefile.pre.in   Fri Aug 23 18:05:49 2002
3 +++ Python-2.2.2/Makefile.pre.in        Thu Oct 17 12:04:40 2002
4 @@ -25,6 +25,7 @@
5  
6  # === Variables set by configure
7  VERSION=       @VERSION@
8 +SOVERSION=     @SOVERSION@
9  srcdir=                @srcdir@
10  VPATH=         @srcdir@
11  
12 @@ -65,7 +66,7 @@
13  # Extra C flags added for building the interpreter object files.
14  CFLAGSFORSHARED=@CFLAGSFORSHARED@
15  # C flags used for building the interpreter object files
16 -PY_CFLAGS=     $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED)
17 +PY_CFLAGS=     $(CFLAGS) $(CPPFLAGS)
18  
19  
20  # Machine-dependent subdirectories
21 @@ -97,6 +98,7 @@
22  LDSHARED=      @LDSHARED@
23  BLDSHARED=     @BLDSHARED@
24  DESTSHARED=    $(BINLIBDEST)/lib-dynload
25 +RUNSHARED=     LD_PRELOAD=./$(LDLIBRARY)
26  
27  # Executable suffix (.exe on Windows and Mac OS X)
28  EXE=           @EXEEXT@
29 @@ -288,7 +290,7 @@
30  # Rules
31  
32  # Default target
33 -all:           $(BUILDPYTHON) oldsharedmods sharedmods
34 +all:           $(BUILDPYTHON) $(LIBRARY) oldsharedmods sharedmods
35  
36  # Build the interpreter
37  $(BUILDPYTHON):        Modules/$(MAINOBJ) $(LDLIBRARY)
38 @@ -297,14 +299,14 @@
39                         $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
40  
41  platform: $(BUILDPYTHON)
42 -       ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
43 +       $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
44  
45  
46  # Build the shared modules
47  sharedmods: $(BUILDPYTHON)
48         case $$MAKEFLAGS in \
49 -       *-s*) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
50 -       *) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
51 +       *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
52 +       *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
53         esac
54  
55  # buildno should really depend on something like LIBRARY_SRC
56 @@ -332,6 +334,20 @@
57         $(AR) cr $@ $(MODOBJS)
58         $(RANLIB) $@
59  
60 +# WARNING: The following is only tested for Debian GNU/Linux.
61 +# This rule is silly and needs to be cleaned up ASAP!
62 +#      Gregor Hoffleit <flight@debian.org>
63 +#
64 +# This rule is here for Linux shared libs
65 +# The PIC code will be built additionally to the static lib!
66 +libpython$(VERSION).so.$(SOVERSION): $(LIBRARY_OBJS:%.o=%.pic_o)
67 +       case `uname -s | tr -d '/ ' | tr '[A-Z]' '[a-z]'` in \
68 +       *linux*|*gnu*) \
69 +           $(CC) -shared -Wl,-soname,$@ -o $@ $(LIBRARY_OBJS:%.o=%.pic_o) \
70 +               $(LIBS) $(LIBM) \
71 +           ;; \
72 +       esac
73 +
74  # This rule is only here for DG/UX and BeOS!!!
75  libpython$(VERSION).so:        $(LIBRARY)
76         case `uname -s | tr -d '/ ' | tr '[A-Z]' '[a-z]'` in \
77 @@ -391,6 +407,9 @@
78  Modules/getbuildinfo.o: $(srcdir)/Modules/getbuildinfo.c buildno
79         $(CC) -c $(PY_CFLAGS) -DBUILD=`cat buildno` -o $@ $(srcdir)/Modules/getbuildinfo.c
80  
81 +Modules/getbuildinfo.pic_o: $(srcdir)/Modules/getbuildinfo.c buildno
82 +       $(CC) -c $(PY_CFLAGS) $(CCSHARED) -DBUILD=`cat buildno` -o $@ $(srcdir)/Modules/getbuildinfo.c
83 +
84  Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
85         $(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
86                 -DPREFIX='"$(prefix)"' \
87 @@ -399,9 +418,20 @@
88                 -DVPATH='"$(VPATH)"' \
89                 -o $@ $(srcdir)/Modules/getpath.c
90  
91 +Modules/getpath.pic_o: $(srcdir)/Modules/getpath.c Makefile
92 +       $(CC) -c $(PY_CFLAGS) $(CCSHARED) -DPYTHONPATH='"$(PYTHONPATH)"' \
93 +               -DPREFIX='"$(prefix)"' \
94 +               -DEXEC_PREFIX='"$(exec_prefix)"' \
95 +               -DVERSION='"$(VERSION)"' \
96 +               -DVPATH='"$(VPATH)"' \
97 +               -o $@ $(srcdir)/Modules/getpath.c
98 +
99  Modules/ccpython.o: $(srcdir)/Modules/ccpython.cc
100         $(CXX) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/ccpython.cc
101  
102 +Modules/ccpython.pic_o: $(srcdir)/Modules/ccpython.cc
103 +       $(CXX) -c $(PY_CFLAGS) $(CCSHARED) -o $@ $(srcdir)/Modules/ccpython.cc
104 +
105  
106  $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
107                 -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
108 @@ -420,9 +450,15 @@
109  Python/getplatform.o: $(srcdir)/Python/getplatform.c
110                 $(CC) -c $(CFLAGS) $(CPPFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
111  
112 +Python/getplatform.pic_o: $(srcdir)/Python/getplatform.c
113 +               $(CC) -c $(CFLAGS) $(CPPFLAGS) $(CCSHARED) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
114 +
115  Python/importdl.o: $(srcdir)/Python/importdl.c
116                 $(CC) -c $(CFLAGS) $(CPPFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
117  
118 +Python/importdl.pic_o: $(srcdir)/Python/importdl.c
119 +               $(CC) -c $(CFLAGS) $(CPPFLAGS) $(CCSHARED) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
120 +
121  Objects/object.o: $(srcdir)/Objects/object.c $(srcdir)/Objects/obmalloc.c
122  
123  Objects/unicodectype.o:        $(srcdir)/Objects/unicodectype.c \
124 @@ -486,7 +522,7 @@
125  # Test the interpreter (twice, once without .pyc files, once with)
126  TESTOPTS=      -l
127  TESTPROG=      $(srcdir)/Lib/test/regrtest.py
128 -TESTPYTHON=    ./$(BUILDPYTHON) -E -tt
129 +TESTPYTHON=    $(RUNSHARED) ./$(BUILDPYTHON) -E -tt
130  test:          all platform
131                 -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
132                 -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
133 @@ -556,6 +592,12 @@
134                 fi; \
135         done
136         $(INSTALL_PROGRAM) $(BUILDPYTHON) $(BINDIR)/python$(VERSION)$(EXE)
137 +       if test -f libpython$(VERSION).so.$(SOVERSION); then \
138 +               mkdir $(LIBDIR); \
139 +               $(INSTALL_DATA) libpython$(VERSION).so.$(SOVERSION) $(LIBDIR); \
140 +               (cd $(LIBDIR) && $(LN) -sf libpython$(VERSION).so.$(SOVERSION) libpython$(VERSION).so); \
141 +       else    true; \
142 +       fi
143         if test -f libpython$(VERSION).so; then \
144                 $(INSTALL_DATA) libpython$(VERSION).so $(LIBDIR); \
145         else    true; \
146 @@ -640,11 +682,11 @@
147                 done; \
148         done
149         $(INSTALL_DATA) $(srcdir)/LICENSE $(LIBDEST)/LICENSE.txt
150 -       PYTHONPATH=$(LIBDEST) \
151 -               ./$(BUILDPYTHON) -tt $(LIBDEST)/compileall.py -x badsyntax \
152 -               $(LIBDEST)
153 -       PYTHONPATH=$(LIBDEST) \
154 -               ./$(BUILDPYTHON) -O $(LIBDEST)/compileall.py -x badsyntax $(LIBDEST)
155 +##     PYTHONPATH=$(LIBDEST) \
156 +##             ./$(BUILDPYTHON) -tt $(LIBDEST)/compileall.py -x badsyntax \
157 +##             $(LIBDEST)
158 +##     PYTHONPATH=$(LIBDEST) \
159 +##             ./$(BUILDPYTHON) -O $(LIBDEST)/compileall.py -x badsyntax $(LIBDEST)
160  
161  # Create the PLATDIR source directory, if one wasn't distributed..
162  $(srcdir)/Lib/$(PLATDIR):
163 @@ -686,12 +728,12 @@
164                 else    true; \
165                 fi; \
166         done
167 -       @if test -d $(LDLIBRARY); then :; else \
168 +       @if test -d $(LIBRARY); then :; else \
169                 if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
170 -                       $(INSTALL_DATA) $(LDLIBRARY) $(LIBPL)/$(LDLIBRARY) ; \
171 -                       $(RANLIB) $(LIBPL)/$(LDLIBRARY) ; \
172 +                       $(INSTALL_DATA) $(LIBRARY) $(LIBPL)/$(LIBRARY) ; \
173 +                       $(RANLIB) $(LIBPL)/$(LIBRARY) ; \
174                 else \
175 -                       echo Skip install of $(LDLIBRARY) - use make frameworkinstall; \
176 +                       echo Skip install of $(LIBRARY) - use make frameworkinstall; \
177                 fi; \
178         fi
179         $(INSTALL_DATA) Modules/config.c $(LIBPL)/config.c
180 @@ -733,7 +775,8 @@
181  # Install the dynamically loadable modules
182  # This goes into $(exec_prefix)
183  sharedinstall:
184 -       ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
185 +       $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
186 +               --prefix=$(prefix) \
187                 --install-scripts=$(BINDIR) \
188                 --install-platlib=$(DESTSHARED)
189  
190 @@ -810,6 +853,11 @@
191  .c.o:
192         $(CC) -c $(PY_CFLAGS) -o $@ $<
193  
194 +.SUFFIXES: .pic_o
195 +
196 +.c.pic_o:
197 +       $(CC) -c $(PY_CFLAGS) $(CCSHARED) -o $@ $<
198 +
199  # Rerun configure with the same options as it was run last time,
200  # provided the config.status script exists
201  recheck:
202 diff -Nur Python-2.2.2.orig/configure.in Python-2.2.2/configure.in
203 --- Python-2.2.2.orig/configure.in      Thu Oct 10 17:26:46 2002
204 +++ Python-2.2.2/configure.in   Thu Oct 17 12:05:36 2002
205 @@ -8,6 +8,10 @@
206  AC_SUBST(VERSION)
207  VERSION=2.2
208  
209 +# Set SOVERSION
210 +AC_SUBST(SOVERSION)
211 +SOVERSION=0.0
212 +
213  # Arguments passed to configure.
214  AC_SUBST(CONFIG_ARGS)
215  CONFIG_ARGS="$ac_configure_args"
216 @@ -273,6 +277,7 @@
217  # python might then depend on the C++ runtime
218  # This is altered for AIX in order to build the export list before 
219  # linking.
220 +# For Linux, we now build a shared library, too.
221  AC_SUBST(LINKCC)
222  AC_MSG_CHECKING(LINKCC)
223  if test -z "$LINKCC"
224 @@ -298,6 +303,9 @@
225            LINKCC="LD_RUN_PATH=$libdir $(LINKCC)";;
226         Monterey64*)
227            LINKCC="$(LINKCC) -L/usr/lib/ia64l64";;
228 +       Linux*|GNU*)
229 +          LDLIBRARY='libpython$(VERSION).so.$(SOVERSION)'
230 +          LINKCC="\$(CC)";;
231         esac
232  fi
233  AC_MSG_RESULT($LINKCC)
234 @@ -824,7 +832,7 @@
235                         BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
236                         LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/$(PYTHON)'
237                 fi ;;
238 -       Linux*) LDSHARED='$(CC) -shared';;
239 +       Linux*|GNU*) LDSHARED='$(CC) -shared';;
240         dgux*) LDSHARED="ld -G";;
241         BSD/OS*/4*) LDSHARED="gcc -shared";;
242         OpenBSD*|FreeBSD*)
243 @@ -861,7 +869,7 @@
244                  then CCSHARED="-fPIC";
245                  else CCSHARED="+z";
246                  fi;;
247 -       Linux*) CCSHARED="-fPIC";;
248 +       Linux*|GNU*) CCSHARED="-fPIC";;
249         BSD/OS*/4*) CCSHARED="-fpic";;
250         FreeBSD*|NetBSD*|OpenBSD*) CCSHARED="-fPIC";;
251         OpenUNIX*|UnixWare*)
252 @@ -893,7 +901,7 @@
253         hp*|HP*)
254             LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
255         BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
256 -       Linux*) LINKFORSHARED="-Xlinker -export-dynamic";;
257 +       Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
258         # -u libsys_s pulls in all symbols in libsys
259         Darwin/*) 
260                 # -u __dummy makes the linker aware of the objc runtime
261 @@ -1066,8 +1074,14 @@
262      AC_MSG_RESULT($unistd_defines_pthreads)
263  
264      AC_DEFINE(_REENTRANT)
265 +    AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
266 +    AC_DEFINE(C_THREADS)
267 +    AC_DEFINE(HURD_C_THREADS)
268 +    LIBS="$LIBS -lthreads"
269 +    LIBOBJS="$LIBOBJS thread.o"],[
270      AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
271      AC_DEFINE(C_THREADS)
272 +    AC_DEFINE(MACH_C_THREADS)
273      LIBOBJS="$LIBOBJS thread.o"],[
274      AC_MSG_CHECKING(for --with-pth)
275      AC_ARG_WITH(pth,
276 @@ -1121,7 +1135,7 @@
277      LIBS="$LIBS -lcma"
278      LIBOBJS="$LIBOBJS thread.o"],[
279      USE_THREAD_MODULE="#"])
280 -    ])])])])])])])])])
281 +    ])])])])])])])])])])
282  
283      if test "$posix_threads" = "yes"; then
284        if test "$unistd_defines_pthreads" = "no"; then
This page took 0.085818 seconds and 4 git commands to generate.