]> granicus.if.org Git - python/commitdiff
Patch #1722225: Support QNX 6.
authorMartin v. Löwis <martin@v.loewis.de>
Fri, 23 May 2008 15:06:50 +0000 (15:06 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Fri, 23 May 2008 15:06:50 +0000 (15:06 +0000)
Include/pyport.h
Misc/NEWS
Modules/_ctypes/libffi/configure
Modules/_ctypes/libffi/configure.ac
Modules/_ctypes/malloc_closure.c
configure
configure.in
pyconfig.h.in
setup.py

index 4656f8c086dc71336f797c8c3e60338ebae3f1c7..7c684f7320f32e25700b2566cf03a40196a91b5d 100644 (file)
@@ -454,6 +454,13 @@ int shutdown( int, int );
 extern char * _getpty(int *, int, mode_t, int);
 #endif
 
+/* On QNX 6, struct termio must be declared by including sys/termio.h
+   if TCGETA, TCSETA, TCSETAW, or TCSETAF are used.  sys/termio.h must
+   be included before termios.h or it will generate an error. */
+#ifdef HAVE_SYS_TERMIO_H
+#include <sys/termio.h>
+#endif
+
 #if defined(HAVE_OPENPTY) || defined(HAVE_FORKPTY)
 #if !defined(HAVE_PTY_H) && !defined(HAVE_LIBUTIL_H)
 /* BSDI does not supply a prototype for the 'openpty' and 'forkpty'
index ec232a6b2350e8a70ea0d3b7c42b7ab3cfb34a4c..42d9f32937f60f32de36e559493fcdc4a43d9d73 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -224,6 +224,8 @@ Library
 Build
 -----
 
+- Patch #1722225: Support QNX 6.
+
 - ``Lib/lib-old`` is now added to sys.path.
 
 
index ee8f63650e16353d9fb16c12d55937e9e7081b3d..aaa79141902ced72d4338d9fe7f7b68be5719c98 100755 (executable)
@@ -20406,6 +20406,9 @@ case "$host" in
   i?86-*-solaris2.1[0-9]*)
        TARGET=X86_64; TARGETDIR=x86
        ;;
+  i*86-*-nto-qnx*)
+        TARGET=X86; TARGETDIR=x86
+        ;;
   i?86-*-*)
        TARGET=X86; TARGETDIR=x86
        ;;
index 0a85146b1adf35cdf2127410ac013bbdc5701ece..57c161befe16b6ae065ebc4e2693f7f6f8400b4c 100644 (file)
@@ -86,6 +86,9 @@ case "$host" in
   i?86-*-solaris2.1[[0-9]]*)
        TARGET=X86_64; TARGETDIR=x86
        ;;
+  i*86-*-nto-qnx*) 
+        TARGET=X86; TARGETDIR=x86
+        ;;
   i?86-*-*)
        TARGET=X86; TARGETDIR=x86
        ;;
index 4cd5dd6f5a23a2301811791aebefa6588ef782e4..73fc0d9bfd19508acaba1871a9de47df408d978b 100644 (file)
@@ -48,7 +48,11 @@ static void more_core(void)
        }
 #else
        if (!_pagesize) {
+#ifdef _SC_PAGESIZE
+               _pagesize = sysconf(_SC_PAGESIZE);
+#else
                _pagesize = getpagesize();
+#endif
        }
 #endif
 
index 28275ce8c935c9edfd505ea65b56c33a49e28398..b24c829c8a1cc1457299a913b4a91bd359e32851 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 62644 .
+# From configure.in Revision: 63545 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for python 2.6.
 #
@@ -2078,6 +2078,11 @@ _ACEOF
   Darwin/[789].*)
     define_xopen_source=no
     ;;
+  # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
+  # defining NI_NUMERICHOST.
+  QNX/6.3.2)
+    define_xopen_source=no
+    ;;
 
 esac
 
@@ -3931,6 +3936,10 @@ then
           LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
        Monterey64*)
           LINKCC="$LINKCC -L/usr/lib/ia64l64";;
+       QNX*)
+          # qcc must be used because the other compilers do not
+          # support -N.
+          LINKCC=qcc;;
        esac
 fi
 { echo "$as_me:$LINENO: result: $LINKCC" >&5
@@ -5470,6 +5479,7 @@ done
 
 
 
+
 
 
 for ac_header in asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
@@ -5480,7 +5490,7 @@ unistd.h utime.h \
 sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
 sys/lock.h sys/mkdev.h sys/modem.h \
 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/stat.h \
-sys/time.h \
+sys/termio.h sys/time.h \
 sys/times.h sys/types.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
 bluetooth/bluetooth.h linux/tipc.h
@@ -12531,7 +12541,7 @@ then
                        fi
                fi
                ;;
-       Linux*|GNU*) LDSHARED='$(CC) -shared';;
+       Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
        BSD/OS*/4*) LDSHARED="gcc -shared";;
        FreeBSD*)
                if [ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]
@@ -12659,6 +12669,13 @@ then
                then
                        LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
                fi;;
+       QNX*)
+               # -Wl,-E causes the symbols to be added to the dynamic
+               # symbol table so that they can be found when a module
+               # is loaded.  -N 2048K causes the stack size to be set
+               # to 2048 kilobytes so that the stack doesn't overflow
+               # when running test_compile.py.
+               LINKFORSHARED='-Wl,-E -N 2048K';;
        esac
 fi
 { echo "$as_me:$LINENO: result: $LINKFORSHARED" >&5
index a7c96f90d00fa07c7007fa2a343cd86b6e983d1d..b0de6eabd705477c2ac44b447604dc60dab7085a 100644 (file)
@@ -262,6 +262,11 @@ case $ac_sys_system/$ac_sys_release in
   Darwin/@<:@789@:>@.*)
     define_xopen_source=no
     ;;
+  # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
+  # defining NI_NUMERICHOST.
+  QNX/6.3.2)
+    define_xopen_source=no
+    ;;
 
 esac
 
@@ -597,6 +602,10 @@ then
           LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
        Monterey64*)
           LINKCC="$LINKCC -L/usr/lib/ia64l64";;
+       QNX*)
+          # qcc must be used because the other compilers do not
+          # support -N.
+          LINKCC=qcc;;
        esac
 fi
 AC_MSG_RESULT($LINKCC)
@@ -1143,7 +1152,7 @@ unistd.h utime.h \
 sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
 sys/lock.h sys/mkdev.h sys/modem.h \
 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/stat.h \
-sys/time.h \
+sys/termio.h sys/time.h \
 sys/times.h sys/types.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
 bluetooth/bluetooth.h linux/tipc.h)
@@ -1587,7 +1596,7 @@ then
                        fi
                fi
                ;;
-       Linux*|GNU*) LDSHARED='$(CC) -shared';;
+       Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
        BSD/OS*/4*) LDSHARED="gcc -shared";;
        FreeBSD*)
                if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
@@ -1711,6 +1720,13 @@ then
                then
                        LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
                fi;;
+       QNX*)
+               # -Wl,-E causes the symbols to be added to the dynamic
+               # symbol table so that they can be found when a module
+               # is loaded.  -N 2048K causes the stack size to be set
+               # to 2048 kilobytes so that the stack doesn't overflow
+               # when running test_compile.py.
+               LINKFORSHARED='-Wl,-E -N 2048K';;
        esac
 fi
 AC_MSG_RESULT($LINKFORSHARED)
index 8c9fd165f695a6a1cd2dfa4db164af6876788f3f..9dbcd1e53d9026754d3a7d2694074b0dba90fa52 100644 (file)
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H
 
+/* Define to 1 if you have the <sys/termio.h> header file. */
+#undef HAVE_SYS_TERMIO_H
+
 /* Define to 1 if you have the <sys/times.h> header file. */
 #undef HAVE_SYS_TIMES_H
 
index 4663cece8c14f4b08111e4490023be75f6eadf58..79ad5aabe543bc423c3e745255b65b89d5785545 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1009,7 +1009,7 @@ class PyBuildExt(build_ext):
                 missing.append('resource')
 
             # Sun yellow pages. Some systems have the functions in libc.
-            if platform not in ['cygwin', 'atheos']:
+            if platform not in ['cygwin', 'atheos', 'qnx6']:
                 if (self.compiler.find_library_file(lib_dirs, 'nsl')):
                     libs = ['nsl']
                 else: