Index: config_office/configure =================================================================== RCS file: /cvs/tools/config_office/configure,v retrieving revision 1.34.2.8 diff -u -r1.34.2.8 configure --- config_office/configure 4 Jul 2003 10:04:59 -0000 1.34.2.8 +++ config_office/configure 6 Jul 2003 14:53:47 -0000 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 1.53.2.7 . +# From configure.in Revision: 1.53.2.8 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.57. # @@ -271,7 +271,7 @@ PACKAGE_STRING= PACKAGE_BUGREPORT= -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS AWK SED CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COMPATH _cc CPP EGREP CXX CXXFLAGS ac_ct_CXX CXXCPP JAVA XMKMF PERL TCSH PKG_CONFIG GTK_CFLAGS GTK_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS BISON FLEX PATCH CYGWIN ML_EXE ZIP_EXE ANT ANT_HOME GXX_INCLUDE_PATH GCC_HOME GNUMAKE JAVA_HOME XLIB XINC LOCAL_SOLENV LOCAL_SOLVER UPD COMEX STLPORT4 WITH_LANG WITH_DICT PSDK_HOME ASM_HOME UNZIP_HOME WITH_MINGWIN USE_SHELL EXCEPTIONS OSVERSION USE_GCC3 PTHREAD_CFLAGS PTHREAD_LIBS ENABLE_DEBUG ENABLE_STATIC_GTK ENVCFLAGSCXX ENABLE_CRASHDUMP WITH_GPC LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS AWK SED CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COMPATH _cc CPP EGREP CXX CXXFLAGS ac_ct_CXX CXXCPP JAVA XMKMF PERL TCSH PKG_CONFIG GTK_CFLAGS GTK_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS BISON FLEX PATCH CYGWIN ML_EXE ZIP_EXE ANT ANT_HOME GXX_INCLUDE_PATH GCC_HOME GNUMAKE JAVA_HOME XLIB XINC LOCAL_SOLENV LOCAL_SOLVER UPD COMEX STLPORT4 WITH_LANG WITH_DICT PSDK_HOME ASM_HOME UNZIP_HOME WITH_MINGWIN USE_SHELL EXCEPTIONS OSVERSION USE_GCC3 PTHREAD_CFLAGS PTHREAD_LIBS ENABLE_DEBUG ENABLE_GLIBC_2_1_3 ENABLE_STATIC_GTK ENVCFLAGSCXX ENABLE_CRASHDUMP WITH_GPC LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -829,6 +829,9 @@ plus extra debugging code. Extra large build! (enables -g compiler flag and dmake debug=true) + --enable-glibc-2-1-3: Enables you to compile a linux build if you + are still using glibc 2.1.3. + --enable-crashdump: Enable the crashdump feature code. --enable-static-gtk: Modules that are linked against gtk libraries use @@ -1403,6 +1406,11 @@ enableval="$enable_debug" fi; +# Check whether --enable-glibc-2-1-3 or --disable-glibc-2-1-3 was given. +if test "${enable_glibc_2_1_3+set}" = set; then + enableval="$enable_glibc_2_1_3" + +fi; # Check whether --enable-crashdump or --disable-crashdump was given. if test "${enable_crashdump+set}" = set; then enableval="$enable_crashdump" @@ -6732,6 +6740,13 @@ echo "$as_me: error: libc is less than version 2.1.1, upgrade libc" >&2;} { (exit 1); exit 1; }; } fi + if test -n "$enable_glibc_2_1_3"; then + ENABLE_GLIBC_2_1_3="TRUE" + else + ENABLE_GLIBC_2_1_3="FALSE" + fi +else + ENABLE_GLIBC_2_1_3="FALSE" fi if test \( "$_os" = "WINNT" \) ; then echo "$as_me:$LINENO: checking PSDK files" >&5 @@ -7357,6 +7372,7 @@ + ac_config_files="$ac_config_files set_soenv" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -8051,6 +8067,7 @@ s,@PTHREAD_CFLAGS@,$PTHREAD_CFLAGS,;t t s,@PTHREAD_LIBS@,$PTHREAD_LIBS,;t t s,@ENABLE_DEBUG@,$ENABLE_DEBUG,;t t +s,@ENABLE_GLIBC_2_1_3@,$ENABLE_GLIBC_2_1_3,;t t s,@ENABLE_STATIC_GTK@,$ENABLE_STATIC_GTK,;t t s,@ENVCFLAGSCXX@,$ENVCFLAGSCXX,;t t s,@ENABLE_CRASHDUMP@,$ENABLE_CRASHDUMP,;t t Index: config_office/configure.in =================================================================== RCS file: /cvs/tools/config_office/configure.in,v retrieving revision 1.53.2.8 diff -u -r1.53.2.8 configure.in --- config_office/configure.in 4 Jul 2003 10:05:00 -0000 1.53.2.8 +++ config_office/configure.in 6 Jul 2003 14:53:48 -0000 @@ -37,6 +37,10 @@ plus extra debugging code. Extra large build! (enables -g compiler flag and dmake debug=true) ],,) +AC_ARG_ENABLE(glibc-2-1-3, +[ --enable-glibc-2-1-3: Enables you to compile a linux build if you + are still using glibc 2.1.3. +],,) AC_ARG_ENABLE(crashdump, [ --enable-crashdump: Enable the crashdump feature code. ],,) @@ -1112,6 +1116,13 @@ else AC_MSG_ERROR([libc is less than version 2.1.1, upgrade libc]) fi + if test -n "$enable_glibc_2_1_3"; then + ENABLE_GLIBC_2_1_3="TRUE" + else + ENABLE_GLIBC_2_1_3="FALSE" + fi +else + ENABLE_GLIBC_2_1_3="FALSE" fi dnl ========================================= dnl Check for the Microsoft Platform SDK. @@ -1412,6 +1423,7 @@ AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_LIBS) AC_SUBST(ENABLE_DEBUG) +AC_SUBST(ENABLE_GLIBC_2_1_3) AC_SUBST(ENABLE_STATIC_GTK) AC_SUBST(ENVCFLAGSCXX) AC_SUBST(ENABLE_CRASHDUMP) Index: config_office/set_soenv.in =================================================================== RCS file: /cvs/tools/config_office/set_soenv.in,v retrieving revision 1.8.2.5 diff -u -r1.8.2.5 set_soenv.in --- config_office/set_soenv.in 4 Jul 2003 10:05:01 -0000 1.8.2.5 +++ config_office/set_soenv.in 6 Jul 2003 14:53:49 -0000 @@ -87,7 +87,7 @@ $COMP_ENV, $IENV, $ILIB, $WIN_INCLUDE, $JAVAHOME, $WIN_LIB, $PSDK_HOME, $USE_NEW_SDK, $NO_HIDS, $TEMP, $COMMON_BUILD_TOOLS, $WIN_GREP, $WIN_FIND, $WIN_LS, $WIN_GNUCOPY, $WIN_TOUCH, $STLPORT4, $USE_GCC3, $ENABLE_DEBUG, $ENABLE_STATIC_GTK, - $PYTHONPATH, $PYTHONHOME ); + $ENABLE_GLIBC_2_1_3, $PYTHONPATH, $PYTHONHOME ); # #------------------------------------------- # IId. Declaring the aliases. @@ -135,6 +135,7 @@ $CXX = '@CXX@'; # C++ compiler $EXCEPTIONS = '@EXCEPTIONS@'; # Exception handling type $ENABLE_DEBUG = '@ENABLE_DEBUG@'; # Enable a debug build +$ENABLE_GLIBC_2_1_3 = '@ENABLE_GLIBC_2_1_3@'; # Enable glibc 2.1.3 build (only for glibc 2.1.3 systems) $ENABLE_STATIC_GTK = '@ENABLE_STATIC_GTK@'; # Use static gtk libraries $WRAPCMD = ""; # Wrapper (only for winnt) @@ -807,7 +808,7 @@ # see above for why the change $XCLASSPATH = '$JAVA_HOME'.$ds.'jre'.$LIB.$ds."rt.jar".$ps.'.'; # Paths to run time shared libraries. -if ($platform eq "$Solaris") +if ($platform eq "$Solaris") { $LD_LIBRARY_PATH = $cur_dir. $ps.$USR_DT.$LIB. $ps.$USR_OPENWIN.$LIB. @@ -1396,6 +1397,7 @@ if ($ENABLE_DEBUG eq "TRUE") { ToFile( "debug", "true", "e" ); } +ToFile( "ENABLE_GLIBC_2_1_3", $ENABLE_GLIBC_2_1_3, "e"); ToFile( "ENABLE_STATIC_GTK", $ENABLE_STATIC_GTK, "e" ); ToFile( "PSPRINT", "TRUE", "e" ); # [ed] 5/14/02 If we're building Aqua graphics, insert a C macro to indicate this. Index: desktop/source/pagein/file_image_unx.c =================================================================== RCS file: /cvs/framework/desktop/source/pagein/file_image_unx.c,v retrieving revision 1.2 diff -u -r1.2 file_image_unx.c --- desktop/source/pagein/file_image_unx.c 4 Jun 2003 10:43:11 -0000 1.2 +++ desktop/source/pagein/file_image_unx.c 6 Jul 2003 14:53:49 -0000 @@ -66,7 +66,7 @@ #include #include -#if defined(LINUX) +#if defined(LINUX) && !defined(__USE_BSD) #define __USE_BSD /* madvise, MADV_WILLNEED */ #endif /* Linux */ @@ -75,6 +75,15 @@ #include +#if defined(LINUX) && defined(HAVE_GLIBC_2_1_3) +#include + +#if !defined(MADV_WILLNEED) +#define MADV_WILLNEED 3 +#endif + +#endif /* LINUX && HAVE_GLIBC_2_1_3 */ + /* * file_image_open */ @@ -122,6 +131,12 @@ long s; size_t k; volatile char c = 0; +#if defined(LINUX) && defined(HAVE_GLIBC_2_1_3) + char *vstr; + int maj_ver; + int min_ver; + int mic_ver; +#endif /* LINUX && HAVE_GLIBC_2_1_3 */ if (image == 0) return (EINVAL); @@ -131,8 +146,40 @@ if ((w.m_size = image->m_size) == 0) return (0); +#if defined(LINUX) && defined(HAVE_GLIBC_2_1_3) + /* Runtime check: Make sure glibc 2.1.3 builds take advantage */ + /* of madvise() on >= glibc 2.2 systems */ + maj_ver = min_ver = mic_ver = 0; + vstr = (char *) gnu_get_libc_version(); + + if (NULL != vstr) + { + maj_ver = atoi (vstr); + vstr = strchr (vstr, '.'); + + if ((NULL != vstr) && (strlen (vstr) > 1)) + { + min_ver = atoi (++vstr); + vstr = strchr (vstr, '.'); + + if ((NULL != vstr) && (strlen (vstr) > 1)) + mic_ver = atoi (++vstr); + } + + if ((maj_ver > 2) || ((maj_ver == 2) && (min_ver >= 2))) + { + if (madvice (w.m_base, w.m_size, MADV_WILLNEED) == -1) + return (errno); + } else { + return (0); + } + } else { + return (0); + } +#else if (madvise (w.m_base, w.m_size, MADV_WILLNEED) == -1) return (errno); +#endif /* LINUX && HAVE_GLIBC_2_1_3 */ if ((s = sysconf (_SC_PAGESIZE)) == -1) s = 0x1000; Index: desktop/source/pagein/makefile.mk =================================================================== RCS file: /cvs/framework/desktop/source/pagein/makefile.mk,v retrieving revision 1.2.12.1 diff -u -r1.2.12.1 makefile.mk --- desktop/source/pagein/makefile.mk 19 Jun 2003 22:43:12 -0000 1.2.12.1 +++ desktop/source/pagein/makefile.mk 6 Jul 2003 14:53:49 -0000 @@ -89,6 +89,12 @@ STDLIB+=-library=no%Crun .ENDIF # sunpro5 +.IF "$(OS)"=="LINUX" +.IF "$(ENABLE_GLIBC_2_1_3)" == "TRUE" +CFLAGS+=-DHAVE_GLIBC_2_1_3 +.ENDIF +.ENDIF # "$(OS)"=="LINUX" + # --- Targets ------------------------------------------------------ ALL: \ Index: setup2/mow/source/loader/loader.c =================================================================== RCS file: /cvs/installation/setup2/mow/source/loader/loader.c,v retrieving revision 1.47.18.1 diff -u -r1.47.18.1 loader.c --- setup2/mow/source/loader/loader.c 2 Jul 2003 08:55:59 -0000 1.47.18.1 +++ setup2/mow/source/loader/loader.c 6 Jul 2003 14:53:50 -0000 @@ -848,6 +848,26 @@ #ifdef LINUX #include +/* returns: v0 < v1: -1, v0 == v1: 0, v0 > v1: 1 */ +int cmp_ver_triple (int maj0, int min0, int mic0, /* v0 */ + int maj1, int min1, int mic1) /* v1 */ +{ + if (maj0 < maj1) { + return -1; + } else if (maj0 > maj1) { + return 1; + } else if (min0 < min1) { + return -1; + } else if (min0 > min1) { + return 1; + } else if (mic0 < mic1) { + return -1; + } else if (mic0 > mic1) { + return 1; + } + return 0; +} + void check_glibc() { void *handle; @@ -883,16 +903,26 @@ } dlclose (handle); - if ((maj_ver > 2) || ((maj_ver == 2) && (min_ver >= 2))) +#ifndef HAVE_GLIBC_2_1_3 + if (cmp_ver_triple (maj_ver, min_ver, mic_ver, 2, 2, 0) >= 0) return; +#else + if (cmp_ver_triple (maj_ver, min_ver, mic_ver, 2, 1, 3) >= 0) + return; +#endif } else { dlclose (handle); } - printf("error: wrong glibc version, you need at least 2.2.0\n" ); + printf("error: wrong glibc version, you need at least %s\n", +#ifndef HAVE_GLIBC_2_1_3 + "2.2.0"); +#else + "2.1.3"); +#endif exit(1); } -#endif +#endif /* #ifdef LINUX */ Bool b_xerror = False; Index: setup2/mow/source/loader/makefile.mk =================================================================== RCS file: /cvs/installation/setup2/mow/source/loader/makefile.mk,v retrieving revision 1.12 diff -u -r1.12 makefile.mk --- setup2/mow/source/loader/makefile.mk 12 Jun 2003 09:52:25 -0000 1.12 +++ setup2/mow/source/loader/makefile.mk 6 Jul 2003 14:53:50 -0000 @@ -101,6 +101,12 @@ APP1STDLIBS=$(SVUNZIPLIB) $(LOADERLIB) -ldl .ENDIF +.IF "$(OS)"=="LINUX" +.IF "$(ENABLE_GLIBC_2_1_3)" == "TRUE" +CFLAGS+=-DHAVE_GLIBC_2_1_3 +.ENDIF +.ENDIF # "$(OS)"=="LINUX" + .ENDIF # "$(OS)"=="MACOSX" # --- Targets ------------------------------------------------------