This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: _XOPEN_SOURCE issue on IRIX 5.3
Type: Stage:
Components: Build Versions: Python 2.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: gschwarz, loewis, mhertha
Priority: normal Keywords:

Created on 2004-08-07 23:10 by gschwarz, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (6)
msg22002 - (view) Author: Georg Schwarz (gschwarz) Date: 2004-08-07 23:10
On IRIX 5.3 /usr/include/sys/types.h contains:

#if ( !defined(_XOPEN_SOURCE) && !defined(_POSIX_SOURCE) 
) || defined(_BSD_TYPES) || defined(_BSD_COMPAT)
/*
 * Nested include for BSD/sockets source compatibility.
 * (The select macros used to be defined here).
 */
#include <sys/bsd_types.h>
#endif

sys/bsd_types.h however defines u_int.
If _XOPEN_SOURCE is defined (in pyconfig.h) this results 
in u_int not being known and the compilation to fail.  

One way to get around this is to change configure as 
follows (similarly as it is already being done for some 
other OSes, it seems...):

--- configure.orig      2004-08-08 00:18:33.000000000 +
0200
+++ configure   2004-08-08 00:18:59.000000000 +0200
@@ -1466,6 +1466,8 @@
   # has another value. By not (re)defining it, the 
defaults come in place.
   AIX/4)
     define_xopen_source=no;;
+  IRIX/5.*)
+    define_xopen_source=no;;
 esac
 
 if test $define_xopen_source = yes



I am not sure if this is the best way to solve that 
problem though.
msg22003 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2004-08-08 13:22
Logged In: YES 
user_id=21627

Will it build correctly if you define _BSD_TYPES or _BSD_COMPAT?

What is the difference between these two (i.e. which one is
less intrusive)? Get these defined directly, or would we
have to define something else which in turn causes
_BSD_TYPES (say) to be defined?
msg22004 - (view) Author: Georg Schwarz (gschwarz) Date: 2004-08-08 17:32
Logged In: YES 
user_id=951222

On IRIX 5.3 unter /usr/include _BSD_TYPES occurs as follows:
/usr/include/sys/time.h:#if !defined(_POSIX_SOURCE) || 
defined(_BSD_TYPES) || defined(_BSD_COMPAT)
/usr/include/sys/types.h:#if ( !defined(_XOPEN_SOURCE) && 
!defined(_POSIX_SOURCE) ) || defined(_BSD_TYPES) || 
defined(_BSD_COMPAT)
/usr/include/unistd.h:#if ( !defined(_XOPEN_SOURCE) && 
!defined(_POSIX_SOURCE) ) || defined(_BSD_TYPES) || 
defined(_BSD_COMPAT)

Therefore it seems pretty harmless to define _BSD_TYPEs. I 
manually did so by adding -D_BSD_TYPES to OPT= in the 
toplevel Makefile. With this modification python 2.3.4 
compiles even with _XOPEN_SOURCE defined.
msg22005 - (view) Author: Maik Hertha (mhertha) Date: 2004-08-11 12:03
Logged In: YES 
user_id=768223

This item could be solved by adding -D_BSD_TYPES in the
BASECFLAGS-line of the Makefile on Irix 6.5.xx and MIPSpro
Compilers: Version 7.3.1.3m
msg22006 - (view) Author: Maik Hertha (mhertha) Date: 2004-08-12 05:05
Logged In: YES 
user_id=768223

Undefining _XOPEN_SOURCE leads to unpredictable compiling
errors on IRIX 6.5.xx even for python.main.

As in the Irix Manpages for intro(3) mentioned, define
_BSD_TYPES if you want BSD compatibility only partly.

For IRIX 6.5.xx this is used only for the bsddbmodule.

--maik./
msg22007 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2004-08-12 13:47
Logged In: YES 
user_id=21627

This should be now fixed in

configure 1.416.4.15
configure.in 1.427.4.14
pyconfig.h.in 1.83.4.5
NEWS 1.831.4.139
configure 1.452
configure.in 1.465
pyconfig.h.in 1.103

The path I took was to define _BSD_TYPES in pyconfig.h.in.

History
Date User Action Args
2022-04-11 14:56:06adminsetgithub: 40712
2004-08-07 23:10:01gschwarzcreate