Hello,
I've build Modules-3.0BETA1 for HP-UX 9.05 but had to solve a bunch
of problems; now - using it - I have one problem remaining.
1. Which version ????
(Problem: 'BETA1' has a newer timestamp than 'pre' on ftp.modules.org,
but www.modules.org says 'pre' is the latest released version - huh ?
Besides, the README in BETA1 seems to be more up-to-date:
diff Modules-3.0pre/README Modules-3.0BETA1/README
3c3
< Version 2.4
---
> Version 3.0
5,7d4
< *** BETA RELEASE ***
< Beta 1
<
11d7
< 1 July 1994
12a9,11
> Peter W. Osel
> Siemens AG, SBS DS 33
> pw...@Os...
13a13,19
> Jens Hamisch
> Strawberry EDV Systeme GmbH
> je...@St...
>
>
> 2 October 1996
)
I decided to use "BETA1".
Information about HW, OS and config.status:
HW: HP9000-735
OS:
osname=hpux, osvers=9, archname=PA-RISC1.1
uname='hp-ux iridium a.09.05 a 9000735 2013164070 two-user license '
-----------------------------------------------------------------
config.status:
I can mail you this file, if you need it. I decided, it's too long to mail
it to the list.
Problems:
(rcsdiff from original file to "my" version given if I "fixed" it for my
use)
1. -----------------------------------------------------------------
configure doesn't find 'touch', because it miss /bin
RCS file: configure,v
retrieving revision 1.1
diff -r1.1 configure
834c834
< for cmd in "/usr/bin/touch" "/usr/bin/touch -t" "/usr/5bin/touch"
---
> for cmd in "/bin/touch" "/usr/bin/touch" "/usr/bin/touch -t"
"/usr/5bin/touch"
-----------------------------------------------------------------
2. -----------------------------------------------------------------
config.h defines TCL_MINOR_VERSION and TCL_MAJOR_VERSION, although they are
defined by
tcl.h
RCS file: config.h,v
retrieving revision 1.1
diff -c4 -r1.1 config.h
*** config.h 1998/02/18 08:27:07 1.1
--- config.h 1998/01/20 09:19:46
***************
*** 28,38 ****
/* TCL_MINOR_VERSION:
* TCL_MAJOR_VERSION:
* This symbol, if defined, contains the version of TCL (and TCLX)
! */
#define TCL_MINOR_VERSION
#define TCL_MAJOR_VERSION
--- 28,40 ----
/* TCL_MINOR_VERSION:
* TCL_MAJOR_VERSION:
* This symbol, if defined, contains the version of TCL (and TCLX)
!
#define TCL_MINOR_VERSION
#define TCL_MAJOR_VERSION
+
+ */
-----------------------------------------------------------------
3. -----------------------------------------------------------------
error.c uses LOG_...-macros which aren't defined (for HP-UX 9.05)
RCS file: error.c,v
retrieving revision 1.1
diff -r1.1 error.c
187d186
< { "cron", LOG_CRON },
200d198
< { "news", LOG_NEWS },
202d199
< { "uucp", LOG_UUCP }
4. -----------------------------------------------------------------
I had to change the cmd-line-options to cc
-g -> +O2: Debugging of, optimization on (_no_ bug/problem ;-)
-Aa: ANSI (prototypes...) cc won't like Modules without this
_INCLUDE_XOPEN_SOURCE, _INCLUDE_POSIX_SOURCE: needed to get a bunch of
declarations from the HP-UX headers.
RCS file: Makefile,v
retrieving revision 1.1
diff -r1.1 Makefile
38c38
< CFLAGS = -g -DINSTPATH=\"$(prefix)\"
---
> CFLAGS = -Aa +O2 -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"
$(prefix)\"
-----------------------------------------------------------------
Assignements to arrays are gcc-specific. I had to change this for ANSI-C.
utility.c:
--- 196,202 ----
Index: modules/utility.c
diff -c modules/utility.c:1.1.1.1 modules/utility.c:1.2
*** modules/utility.c:1.1.1.1 Fri Sep 4 13:06:16 1998
--- modules/utility.c Fri Sep 4 13:35:35 1998
***************
*** 283,293 ****
** The following hash tables are to be initialized
**/
! Tcl_HashTable *table[] = { setenvHashTable, unsetenvHashTable,
! aliasSetHashTable, aliasUnsetHashTable,
! NULL },
! **table_ptr = table;
#if WITH_DEBUGGING_UTIL_2
ErrorLogger( NO_ERR_START, LOC, _proc_Clear_Global_Hash_Tables, NULL);
#endif
--- 283,300 ----
** The following hash tables are to be initialized
**/
! Tcl_HashTable *table[5],
! **table_ptr;
+ table[0] = setenvHashTable;
+ table[1] = unsetenvHashTable;
+ table[2] = aliasSetHashTable;
+ table[3] = aliasUnsetHashTable;
+ table[4] = NULL;
+
+ table_ptr = table;
+
+
#if WITH_DEBUGGING_UTIL_2
ErrorLogger( NO_ERR_START, LOC, _proc_Clear_Global_Hash_Tables, NULL);
#endif
***************
*** 350,365 ****
/**
** The following hash tables are to be initialized
**/
- Tcl_HashTable *table[] = { setenvHashTable, unsetenvHashTable,
- aliasSetHashTable, aliasUnsetHashTable,
- NULL };
#if WITH_DEBUGGING_UTIL_2
ErrorLogger( NO_ERR_START, LOC, _proc_Delete_Global_Hash_Tables,
NULL);
#endif
! return( Delete_Hash_Tables( table));
} /** End of 'Delete_Global_Hash_Tables' **/
--- 357,377 ----
/**
** The following hash tables are to be initialized
**/
+
+ Tcl_HashTable *table[5];
+
+ table[0] = setenvHashTable;
+ table[1] = unsetenvHashTable;
+ table[2] = aliasSetHashTable;
+ table[3] = aliasUnsetHashTable;
+ table[4] = NULL;
#if WITH_DEBUGGING_UTIL_2
ErrorLogger( NO_ERR_START, LOC, _proc_Delete_Global_Hash_Tables,
NULL);
#endif
! Delete_Hash_Tables( table);
} /** End of 'Delete_Global_Hash_Tables' **/
***************
*** 440,451 ****
int new; /** Tcl inidicator, if the
new hash **/
/** entry has been created or ref.
**/
! Tcl_HashTable *oldTable[] = { setenvHashTable, unsetenvHashTable,
! aliasSetHashTable,
aliasUnsetHashTable,
! NULL },
**o_ptr, **n_ptr,
**newTable; /** Destination hash table
**/
#if WITH_DEBUGGING_UTIL_2
ErrorLogger( NO_ERR_START, LOC, _proc_Copy_Hash_Tables, NULL);
#endif
--- 452,468 ----
int new; /** Tcl inidicator, if the
new hash **/
/** entry has been created or ref.
**/
! Tcl_HashTable *oldTable[5],
**o_ptr, **n_ptr,
**newTable; /** Destination hash table
**/
+ oldTable[0] = setenvHashTable;
+ oldTable[1] = unsetenvHashTable;
+ oldTable[2] = aliasSetHashTable;
+ oldTable[3] = aliasUnsetHashTable;
+ oldTable[4] = NULL;
+
+
#if WITH_DEBUGGING_UTIL_2
ErrorLogger( NO_ERR_START, LOC, _proc_Copy_Hash_Tables, NULL);
#endif
***************
*** 640,646 ****
** shell variables
**/
! Tcl_HashTable *table[] = { setenvHashTable, unsetenvHashTable };
#if WITH_DEBUGGING_UTIL_2
ErrorLogger( NO_ERR_START, LOC, _proc_Output_Modulefile_Changes,
NULL);
--- 657,666 ----
** shell variables
**/
! Tcl_HashTable *table[2];
!
! table[0] = setenvHashTable;
! table[1] = unsetenvHashTable;
#if WITH_DEBUGGING_UTIL_2
ErrorLogger( NO_ERR_START, LOC, _proc_Output_Modulefile_Changes,
NULL);
***************
*** 727,733 ****
** shell aliases
**/
! Tcl_HashTable *table[] = { aliasSetHashTable, aliasUnsetHashTable
};
#ifndef EVAL_ALIAS
--- 747,753 ----
** shell aliases
**/
! Tcl_HashTable *table[2];
#ifndef EVAL_ALIAS
***************
*** 740,746 ****
**/
#ifdef HAVE_TEMPNAM
! char* aliasfilename = (char *)tempnam(NULL, "M_od_");
#else
#ifdef HAVE_TMPNAM
char* aliasfilename[L_tmpnam + 16]; /* Just to be sure...
*/
--- 760,766 ----
**/
#ifdef HAVE_TEMPNAM
! char* aliasfilename = tempnam(NULL, "M_od_");
#else
#ifdef HAVE_TMPNAM
char* aliasfilename[L_tmpnam + 16]; /* Just to be sure...
*/
***************
*** 750,755 ****
--- 770,778 ----
#endif /* not HAVE_TMPNAM */
#endif /* not HAVE_TEMPNAM */
#endif /* not EVAL_ALIAS */
+
+ table[0] = aliasSetHashTable;
+ table[1] = aliasUnsetHashTable;
#if WITH_DEBUGGING_UTIL_2
ErrorLogger( NO_ERR_START, LOC, _proc_Output_Modulefile_Aliases,
NULL);
ksh.in and sh.in: '=' missing
Index: modules/init/ksh.in
diff -c modules/init/ksh.in:1.1.1.1 modules/init/ksh.in:1.2
*** modules/init/ksh.in:1.1.1.1 Fri Sep 4 13:06:20 1998
--- modules/init/ksh.in Fri Sep 4 13:38:23 1998
***************
*** 11,16 ****
fi
if [ "$MODULEPATH" = "" ]; then
! MODULEPATH`sed 's/#.*$//' ${MODULESHOME}/init/.modulespath | awk
'NF==1{printf("%s:",$1)}'`=
export MODULEPATH
fi
--- 11,16 ----
fi
if [ "$MODULEPATH" = "" ]; then
! MODULEPATH=`sed 's/#.*$//' ${MODULESHOME}/init/.modulespath | awk
'NF==1{printf("%s:",$1)}'`
export MODULEPATH
fi
Index: modules/init/sh.in
diff -c modules/init/sh.in:1.1.1.1 modules/init/sh.in:1.2
*** modules/init/sh.in:1.1.1.1 Fri Sep 4 13:06:20 1998
--- modules/init/sh.in Fri Sep 4 13:38:24 1998
***************
*** 11,16 ****
fi
if [ "$MODULEPATH" = "" ]; then
! MODULEPATH`sed 's/#.*$//' ${MODULESHOME}/init/.modulespath | awk
'NF==1{printf("%s:",$1)}'`=
export MODULEPATH
fi
--- 11,16 ----
fi
if [ "$MODULEPATH" = "" ]; then
! MODULEPATH=`sed 's/#.*$//' ${MODULESHOME}/init/.modulespath | awk
'NF==1{printf("%s:",$1)}'`
export MODULEPATH
fi
I added to the help-Text in ModuleCmd_Help.c. (Feel free to ignore this)
Index: modules/ModuleCmd_Help.c
diff -c modules/ModuleCmd_Help.c:1.1.1.1 modules/ModuleCmd_Help.c:1.2
*** modules/ModuleCmd_Help.c:1.1.1.1 Fri Sep 4 13:06:14 1998
--- modules/ModuleCmd_Help.c Fri Sep 4 13:30:37 1998
***************
*** 132,154 ****
fprintf( stderr, "\n Available Commands and Usage:\n\n");
fprintf( stderr, "\t+ add|load\tmodulefile [modulefile ...]\n");
fprintf( stderr, "\t+ rm|unload\tmodulefile [modulefile ...]\n");
! fprintf( stderr, "\t+ switch\tmodulefile1 modulefile2\n");
! fprintf( stderr, "\t+ display\tmodulefile [modulefile ...]\n");
! fprintf( stderr, "\t+ avail\tpath [path]\n");
! fprintf( stderr, "\t+ use\t\tdir [dir ...]\n");
! fprintf( stderr, "\t+ use -append\tdir [dir ...]\n");
fprintf( stderr, "\t+ unuse\tdir [dir ...]\n");
fprintf( stderr, "\t+ update\n");
fprintf( stderr, "\t+ purge\n");
fprintf( stderr, "\t+ list\n");
fprintf( stderr, "\t+ clear\n");
fprintf( stderr, "\t+ help\t\tmodulefile [modulefile ...]\n");
fprintf( stderr, "\t+ initadd\tmodulefile [modulefile ...]\n");
fprintf( stderr, "\t+ initrm\tmodulefile [modulefile ...]\n");
fprintf( stderr, "\t+ initswitch\tmodulefile1 modulefile2\n");
fprintf( stderr, "\t+ initlist\n");
! fprintf( stderr, "\t+ initclear\n\n");
}
/**
--- 132,192 ----
fprintf( stderr, "\n Available Commands and Usage:\n\n");
fprintf( stderr, "\t+ add|load\tmodulefile [modulefile ...]\n");
+ fprintf( stderr, "\t Make Module available\n");
+
fprintf( stderr, "\t+ rm|unload\tmodulefile [modulefile ...]\n");
! fprintf( stderr, "\t Remove Module\n");
!
! fprintf( stderr, "\t+ switch|swap\tmodulefile1 modulefile2\n");
! fprintf( stderr, "\t Replace module1 by module2\n");
!
! fprintf( stderr, "\t+ display|show\tmodulefile [modulefile
...]\n");
! fprintf( stderr, "\t Shows Module-File\n");
!
! fprintf( stderr, "\t+ avail\tpath [path]\n");
! fprintf( stderr, "\t Displays available modules (use
'-l'-Option)\n");
!
! fprintf( stderr, "\t+ use [-append]\t\tdir [dir ...]\n");
! fprintf( stderr, "\t Add Dir. to search-Path for Modules\n");
!
fprintf( stderr, "\t+ unuse\tdir [dir ...]\n");
+ fprintf( stderr, "\t Remove Dir. from search-Path for
Modules\n");
+
fprintf( stderr, "\t+ update\n");
+ fprintf( stderr, "\t (Try to) reload all modules\n");
+
fprintf( stderr, "\t+ purge\n");
+ fprintf( stderr, "\t Unload all modules\n");
+
fprintf( stderr, "\t+ list\n");
+ fprintf( stderr, "\t List loaded Modules\n");
+
+ fprintf( stderr, "\t+ apropos\n");
+ fprintf( stderr, "\t Searches module-Information for string\n");
+
+ fprintf( stderr, "\t+ whatis\n");
+ fprintf( stderr, "\t Shows information about module\n");
+
fprintf( stderr, "\t+ clear\n");
+ fprintf( stderr, "\t \n");
+
fprintf( stderr, "\t+ help\t\tmodulefile [modulefile ...]\n");
+ fprintf( stderr, "\t Shows this information\n");
+
fprintf( stderr, "\t+ initadd\tmodulefile [modulefile ...]\n");
+ fprintf( stderr, "\t Adds module to shell init-file\n");
+
fprintf( stderr, "\t+ initrm\tmodulefile [modulefile ...]\n");
+ fprintf( stderr, "\t Remove module from shell init-file\n");
+
fprintf( stderr, "\t+ initswitch\tmodulefile1 modulefile2\n");
+ fprintf( stderr, "\t Replaces modulefile1 by modulefile2 in
shell init-file\n");
+
fprintf( stderr, "\t+ initlist\n");
! fprintf( stderr, "\t List all modules in shell init-file\n");
!
! fprintf( stderr, "\t+ initclear\n");
! fprintf( stderr, "\t Removes all modules from shell
init-file\n");
}
/**
Finally I got some warnings (I ignored them for now)
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" ModuleCmd_Avail.c
cc: "ModuleCmd_Avail.c", line 216: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: "ModuleCmd_Avail.c", line 808: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: "ModuleCmd_Avail.c", line 821: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: "ModuleCmd_Avail.c", line 869: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: "ModuleCmd_Avail.c", line 1030: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: "ModuleCmd_Avail.c", line 1421: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: "ModuleCmd_Avail.c", line 1795: warning 527: Integral value implicitly
converted to pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" ModuleCmd_Init.c
cc: "ModuleCmd_Init.c", line 347: warning 527: Integral value implicitly
converted to pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" ModuleCmd_Purge.c
cc: "ModuleCmd_Purge.c", line 132: warning 527: Integral value implicitly
converted to pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" ModuleCmd_Whatis.c
cc: "ModuleCmd_Whatis.c", line 279: warning 527: Integral value implicitly
converted to pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" cmdModule.c
cc: "cmdModule.c", line 187: warning 527: Integral value implicitly
converted to pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" cmdVersion.c
cc: "cmdVersion.c", line 1065: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: "cmdVersion.c", line 1187: warning 527: Integral value implicitly
converted to pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" cmdWhatis.c
cc: "cmdWhatis.c", line 190: warning 527: Integral value implicitly
converted to pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" init.c
cc: "init.c", line 344: warning 527: Integral value implicitly converted to
pointer in assignment.
cc: "init.c", line 345: warning 527: Integral value implicitly converted to
pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" locate_module.c
cc: "locate_module.c", line 388: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: warning 475: Variable "save_flags" declared in function "GetModuleName"
is not initialized before being used.
cc: "locate_module.c", line 732: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: "locate_module.c", line 1004: warning 527: Integral value implicitly
converted to pointer in assignment.
cc: "locate_module.c", line 1190: warning 527: Integral value implicitly
converted to pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" main.c
cc: "main.c", line 235: warning 527: Integral value implicitly converted to
pointer in assignment.
cc -c -I.. -I. -I/usr/opt/Tcl7.6/include/ -I/usr/include/X11R5/ -Aa +O2
-D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
-DINSTPATH=\"/usr/opt/Modules3.0\" error.c
cc: "error.c", line 150: warning 562: Redeclaration of "local_line" with a
different storage class: "local_line" will have static storage duration.
cc: "error.c", line 1111: warning 527: Integral value implicitly converted
to pointer in assignment.
Now, when I use modules, I get problem with "module avail".
Some modules show up, some don't, some show up twice. (e.g. 'file()')
bison/() diff2.7/() file/() gas2.3/()
cvs/() emacs/() file3.16/() ghost/()
cvs1.9.28/() emacs20.2/() flex/() ghost5.10/()
diff/() emacs20.3/() gas/() glimpse/()
diff2.7/() file/() gas2.3/() glimpse4.1/()
.....
I don't see this, if I do 'modules -l avail'.
Any hints concerning this and the warning-messages ?
Martin Jost
|