components/python/python27/patches/02-setup.patch
author John Beck <John.Beck@Oracle.COM>
Mon, 16 Mar 2015 13:00:40 -0700
branchs11-update
changeset 3978 adf3ab1a234a
parent 3565 2d729d36ded7
permissions -rw-r--r--
20367692 python /usr/gnu/lib runpath considered unnecessary
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3367
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
     1
This patch modifies the setup script to support Solaris.
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
     2
As it is Solaris-specific, it is not suitable for upstream.
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
     3
3565
2d729d36ded7 20230129 update Python 2.7 line to version 2.7.9
John Beck <John.Beck@Oracle.COM>
parents: 3367
diff changeset
     4
--- Python-2.7.9/setup.py.~1~	2014-12-10 08:00:01.000000000 -0800
3978
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
     5
+++ Python-2.7.9/setup.py	2015-03-16 12:49:18.632646720 -0700
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
     6
@@ -6,6 +6,7 @@
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
     7
 import sys, os, imp, re, optparse
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
     8
 from glob import glob
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
     9
 from platform import machine as platform_machine
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    10
+from platform import processor as platform_processor
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    11
 import sysconfig
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    12
 
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    13
 from distutils import log
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    14
@@ -438,10 +439,13 @@
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    15
             os.unlink(tmpfile)
458
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    16
 
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    17
     def detect_modules(self):
3978
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    18
-        # Ensure that /usr/local is always used
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    19
         if not cross_compiling:
3367
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    20
-            add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    21
-            add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
3978
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    22
+            if host_platform != 'sunos5':
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    23
+                # Upstream notes the following for source builds:
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    24
+                #     Ensure that /usr/local is always used
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    25
+                # But we skip that for Solaris system builds.
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    26
+                add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    27
+                add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
3367
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    28
         if cross_compiling:
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    29
             self.add_gcc_paths()
885
2af25a1da825 7177355 python 2.7.1 should be updated to the latest 2.7.X release
Rich Burridge <rich.burridge@oracle.com>
parents: 458
diff changeset
    30
         self.add_multiarch_paths()
3978
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    31
@@ -765,6 +769,13 @@
458
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    32
                                                      ['/usr/lib/termcap'],
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    33
                                                      'termcap'):
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    34
                 readline_libs.append('termcap')
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    35
+
3367
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    36
+	    if host_platform == 'sunos5':
458
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    37
+		# insert '-zrecord' before the readline libraries that we
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    38
+		# want to link with to avoid rl_insert() elimination
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    39
+		readline_extra_link_args = ('-Wl,-zrecord','-lreadline','-lncurses')
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    40
+		readline_libs = ()
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    41
+
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    42
             exts.append( Extension('readline', ['readline.c'],
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    43
                                    library_dirs=['/usr/lib/termcap'],
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    44
                                    extra_link_args=readline_extra_link_args,
3978
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    45
@@ -786,7 +797,7 @@
458
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    46
         # socket(2)
3367
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    47
         exts.append( Extension('_socket', ['socketmodule.c', 'timemodule.c'],
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    48
                                depends=['socketmodule.h'],
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    49
-                               libraries=math_libs) )
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    50
+                               libraries=math_libs + ['socket', 'nsl']) )
458
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    51
         # Detect SSL support for the socket module (via _ssl)
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    52
         search_for_ssl_incs_in = [
3367
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
    53
                               '/usr/local/ssl/include',
3978
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    54
@@ -1350,8 +1361,11 @@
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    55
                 # _curses_panel.so must link with panelw.
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    56
                 panel_library = 'panelw'
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    57
             curses_libs = [curses_library]
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    58
-            curses_incs = find_file('curses.h', inc_dirs,
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    59
-                                    [os.path.join(d, 'ncursesw') for d in inc_dirs])
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    60
+            if host_platform == 'sunos5':
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    61
+                curses_incs = ['/usr/include/ncurses']
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    62
+            else:
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    63
+                curses_incs = find_file('curses.h', inc_dirs,
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    64
+                                        [os.path.join(d, 'ncursesw') for d in inc_dirs])
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    65
             exts.append( Extension('_curses', ['_cursesmodule.c'],
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    66
                                    include_dirs = curses_incs,
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    67
                                    libraries = curses_libs) )
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    68
@@ -1373,9 +1387,21 @@
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    69
         # If the curses module is enabled, check for the panel module
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    70
         if (module_enabled(exts, '_curses') and
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    71
             self.compiler.find_library_file(lib_dirs, panel_library)):
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    72
+            panel_lib_dirs = []
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    73
+            if host_platform == 'sunos5' and "DFLAGS" in os.environ:
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    74
+                # Look for libpanel under /usr/gnu/lib on Solaris.
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    75
+                if os.environ["DFLAGS"] == '-32':
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    76
+                    panel_lib_dirs.append('/usr/gnu/lib')
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    77
+                else:
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    78
+                    if platform_processor() == 'sparc':
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    79
+                        panel_lib_dirs.append('/usr/gnu/lib/sparcv9')
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    80
+                    else:
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    81
+                        panel_lib_dirs.append('/usr/gnu/lib/amd64')
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    82
             exts.append( Extension('_curses_panel', ['_curses_panel.c'],
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    83
                                    include_dirs = curses_incs,
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    84
-                                   libraries = [panel_library] + curses_libs) )
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    85
+                                   libraries = [panel_library] + curses_libs,
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    86
+                                   library_dirs = panel_lib_dirs,
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    87
+                                   runtime_library_dirs = panel_lib_dirs) )
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    88
         else:
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    89
             missing.append('_curses_panel')
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    90
 
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    91
@@ -1587,9 +1613,14 @@
458
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    92
                 sysconfig.get_config_var('POSIX_SEMAPHORES_NOT_ENABLED')):
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    93
                 multiprocessing_srcs.append('_multiprocessing/semaphore.c')
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    94
 
3978
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    95
+        multiproc_libs = []
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    96
+        if host_platform == 'sunos5':
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
    97
+            multiproc_libs = [ "xnet" ]
458
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    98
+
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    99
         if sysconfig.get_config_var('WITH_THREAD'):
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   100
             exts.append ( Extension('_multiprocessing', multiprocessing_srcs,
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   101
                                     define_macros=macros.items(),
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   102
+                                    libraries=multiproc_libs,
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   103
                                     include_dirs=["Modules/_multiprocessing"]))
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   104
         else:
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   105
             missing.append('_multiprocessing')
3978
adf3ab1a234a 20367692 python /usr/gnu/lib runpath considered unnecessary
John Beck <John.Beck@Oracle.COM>
parents: 3565
diff changeset
   106
@@ -2083,7 +2114,8 @@
458
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   107
             # this option. If you want to compile ctypes with the Sun
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   108
             # compiler, please research a proper solution, instead of
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   109
             # finding some -z option for the Sun compiler.
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   110
-            extra_link_args.append('-mimpure-text')
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   111
+            #extra_link_args.append('-mimpure-text')
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   112
+            pass
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   113
 
3367
ed5024e47b53 PSARC 2014/183 Python 2.7.6
John Beck <John.Beck@Oracle.COM>
parents: 885
diff changeset
   114
         elif host_platform.startswith('hp-ux'):
458
2edc011b559e 7004671 Add Python 2.7.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   115
             extra_link_args.append('-fPIC')