[Python-Dev] Snake farm

Hye-Shik Chang perky@fallin.lv
Tue, 5 Nov 2002 04:29:37 +0900


On Sat, Nov 02, 2002 at 06:51:01PM -0500, Neal Norwitz wrote:
> As some of you may have noticed, I recently checked in a bunch of
> fixes that deal with portability.  I have been granted access to the
> snake farm, which allows me to test python on different architectures.
> 
> The snake farm architectures include:
> 
>         HPUX 11
>         AIX 4.2 & 4.3
>         Linux 2.4 & 2.2/Alpha
>         Solaris 8
>         SunOS 4.1.1
> 
> I am mostly testing 2.3, but can test 2.2 as well.
> 
> Right now, there is no easy way to tell if a bug on SF is specific to
> a particular OS/architecture.  There are already Macintosh and Windows
> categories, perhaps a UNIX category should be added?  In the meantime,
> feel free to assign UNIX platform specific problems to me.  I know
> there are some FreeBSD problems.  There is a FreeBSD machine in the SF
> compile farm (ssh to compile.sf.net).  Just in case someone wants to
> try to fix the FreeBSD bugs. :-)
> 

BTW, Python-CVS can't be compiled FreeBSD-CURRENT, nowadays.
Because FreeBSD-CURRENT hides non-POSIX stuffs on _POSIX_C_SOURCE mode,
Modules/posixmodule.c fails to find chroot, minor, major, makedev and etc.
This patch enables python builds on FreeBSD-CURRENT but I can't
find another generous workaround.

Index: configure.in
===================================================================
RCS file: /cvsroot/python/python/dist/src/configure.in,v
retrieving revision 1.362
diff -c -r1.362 configure.in
*** configure.in	2 Nov 2002 16:58:05 -0000	1.362
--- configure.in	4 Nov 2002 19:12:11 -0000
***************
*** 24,49 ****
  AC_SUBST(SOVERSION)
  SOVERSION=1.0
  
- # The later defininition of _XOPEN_SOURCE disables certain features
- # on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
- AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
- 
- # The definition of _GNU_SOURCE potentially causes a change of the value
- # of _XOPEN_SOURCE. So define it only conditionally.
- AH_VERBATIM([_XOPEN_SOURCE],
- [/* Define on UNIX to activate XPG/5 features.  */
- #ifndef _XOPEN_SOURCE
- # define _XOPEN_SOURCE 500
- #endif])
- AC_DEFINE(_XOPEN_SOURCE, 500)
- 
- # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires definition
- # of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else several APIs
- # are not declared. Since this is also needed in some cases for HP-UX,
- # we define it globally.
- AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Define to activate Unix95-and-earlier features)
- AC_DEFINE(_POSIX_C_SOURCE, 199506L, Define to activate features from IEEE Stds 1003.{123}-1995)
- 
  # Arguments passed to configure.
  AC_SUBST(CONFIG_ARGS)
  CONFIG_ARGS="$ac_configure_args"
--- 24,29 ----
***************
*** 131,136 ****
--- 111,144 ----
  fi
  AC_MSG_RESULT($MACHDEP)
  
+ # The later defininition of _XOPEN_SOURCE disables certain features
+ # on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
+ AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
+ 
+ # The definition of _GNU_SOURCE potentially causes a change of the value
+ # of _XOPEN_SOURCE. So define it only conditionally.
+ AH_VERBATIM([_XOPEN_SOURCE],
+ [/* Define on UNIX to activate XPG/5 features.  */
+ #if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__)
+ # define _XOPEN_SOURCE 500
+ #endif])
+ 
+ case $MACHDEP in
+ # FreeBSD hides non-POSIX functions on POSIX-compatible mode.
+ freebsd*)
+ 	;;
+ *)
+ 	AC_DEFINE(_XOPEN_SOURCE, 500)
+ 
+ 	# On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires definition
+ 	# of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else several APIs
+ 	# are not declared. Since this is also needed in some cases for HP-UX,
+ 	# we define it globally.
+ 	AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Define to activate Unix95-and-earlier features)
+ 	AC_DEFINE(_POSIX_C_SOURCE, 199506L, Define to activate features from IEEE Stds 1003.{123}-1995)
+ 	;;
+ esac
+ 
  # checks for alternative programs
  AC_MSG_CHECKING(for --without-gcc)
  AC_ARG_WITH(gcc,


But, this build gets segfault on installing.

... make install ...
./python -E ./setup.py install  --prefix=/home/perky/test  --install-scripts=/home/perky/test/bin  --install-platlib=/home/perky/test/lib/python2.3/lib-dynload
running install
running build
running build_ext
Segmentation fault (core dumped)
*** Error code 139

#0  PyObject_Free (p=0x800) at Objects/obmalloc.c:713
713             if (ADDRESS_IN_RANGE(p, pool->arenaindex)) {
(gdb) bt
#0  PyObject_Free (p=0x800) at Objects/obmalloc.c:713
#1  0x080e0533 in function_call (func=0x8210b1c, arg=0x82129ac, kw=0x821ebdc)
    at Objects/funcobject.c:481
#2  0x08059564 in PyObject_Call (func=0x0, arg=0x82129ac, kw=0x821ebdc) at Objects/abstract.c:1688
#3  0x0809ea95 in ext_do_call (func=0x8210b1c, pp_stack=0xbfbfddbc, flags=0, na=1, nk=0)
    at Python/ceval.c:3438
#4  0x0809d14f in eval_frame (f=0x81f500c) at Python/ceval.c:2031
.....

> Neal
> 
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> http://mail.python.org/mailman/listinfo/python-dev
> 

Regards,
-- 
Hye-Shik Chang <perky@fallin.lv>
Yonsei University, Seoul
^D