[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 20000127: LDM 5.0.8 and 5.0.9 fail to create ldm library under Tru64/OSF1 5.0



> ------- Forwarded Message
> 
> >To: address@hidden
> >From: Joe St Sauver <address@hidden>
> >Subject: LDM 5.0.8 and 5.0.9 fail to create ldm library under Tru64/OSF1 5.0
> >Organization: .
> >Keywords: 200001272117.OAA04674
> 
> Hi,
> 
> Just wanted to let you know that there are a couple of problems with the
> default config/make install from source for 5.0.9 under
> Compaq Tru64 5.0 (aka Dec Unix/OSF1) on Compaq Alpha hardware. I'm sending
> these notes along in case you have other folks trying to build ldm-5.0.9
> under this OS. 

Joe,

The default make doesn't move the ldm library so other compiles can access
it. A posix make does, also gmake works. I would ignore the warnings, they
should not be critical. The compiled version should work, we have another
site that uses Compaq Tru64 5.0 for their LDM server and it works for
them.

Robb...



> 
> For context:
> 
> # printenv LDMHOME
> /usr/local/ldm
> # uname -a 
> OSF1 whitestar.uoregon.edu V5.0 910 alpha
> 
> http://www.unidata.ucar.edu/packages/ldm/ldmSourceInstallList.html
> implies that I should usually be able to build by doing a ./configure 
> followed by a make install
> 
> Trying that fails due to the make's inability to find the required -lldm
> library. 
> 
> In tracking that error down, I've noted the following:
> 
> 1) There is a "hard coded" reference to "cc" in
> src/protocol/Makefile.in (and thus in src/protocol/Makefile), i.e.:
> 
> depends: $(LIB_CSRCS)
>         cc -xM1 $(CPPFLAGS) $(LIB_CSRCS) > depends
> 
> while $(CC) gets defined to be c89 for all other purposes on this 
> configuration. 
> 
> There may be other hardcoded compiler references of this type in other
> makefiles; I haven't looked at it exhaustively.
> 
> 2) Moreover, for c89 on Tru64, -xM1 is an unknown ld flag, i.e., if 
> you force the cc to a c89 invocation, you get:
> 
> c89 -xM1 -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H 
> atofeedt.c  h_clnt.c  ldm4_svc.c  ldm4_xdr.c  ldm4clnt.c  ldm_svc.c  
> ldm_xdr.c  ldm_xlen.c  ldmclnt.c  ldmprint.c  md5c.c  prod_class.c  
> timestamp.c > depends
> atofeedt.c:
> h_clnt.c:
> ldm4_svc.c:
> ldm4_xdr.c:
> ldm4clnt.c:
> ldm_svc.c:
> ldm_xdr.c:
> ldm_xlen.c:
> ldmclnt.c:
> ldmprint.c:
> md5c.c:
> prod_class.c:
> timestamp.c:
> ld:
> -xM1: Unknown flag
> ld: Usage: ld [options] file [...]
> *** Exit 1
> Stop.
> 
> 3) Building sucessfully appears to require use of gnu make, rather than the
> stock Tru64 make.  This does not appear to be documented at:
> 
> http://www.unidata.ucar.edu/packages/ldm/ldmPreInstallList.html
> 
> Specifically, with the generic (non-satisfactory) DEC Unix make, I'm seeing:
> 
> # cd ~ldm/ldm-5.0.9/src
> # ./configure
> creating cache ./config.cache
> checking for xlc... no
> checking for c89... c89
> checking C compiler... works
> checking the installation prefix... /usr/local/ldm/ldm-5.0.9
> checking domain name... uoregon.edu
> checking how to run the C preprocessor... c89 -E
> checking for AIX... no
> checking for HP-UX... no
> checking whether memory-mapping by region is appropriate... no
> checking the C preprocessor... works
> checking for ar... ar
> checking for perl... /usr/bin/perl
> checking for POSIX shell... /bin/sh
> checking for yacc... yacc
> checking for yacc library... 
> checking for yyerror() in default library(s)... no
> checking for yyerror() in -ly... yes
> checking mmap()... yes
> checking LDMHOME... /usr/local/ldm
> checking size of int... 4
> checking size of long... 8
> checking for ANSI C header files... yes
> checking for size_t... yes
> checking for off_t... yes
> checking for ssize_t... yes
> checking for ptrdiff_t... yes
> checking for stdlib.h... yes
> checking for unistd.h... yes
> checking for fsync... yes
> checking for ftruncate... yes
> checking for memmove... yes
> checking for memcmp... yes
> checking for rename... yes
> checking for strerror... yes
> checking for waitpid... yes
> checking for strdup... yes
> checking for seteuid... yes
> checking for setenv... yes
> checking for mmap... yes
> checking for sig_atomic_t in signal.h... defined
> checking for working const... yes
> checking for st_blksize in struct stat... yes
> checking for sigaction... yes
> checking RPC and socket references... 
> checking ulog defines... -DNO_REPLACE_SYSLOG
> /dev/log:       socket
> -DLOGNAME_ISSOCK
> checking for gdbm_open in -lgdbm... no
> configure: warning: GDBMLIB not set
> checking for dbm_open... yes
> updating cache ./config.cache
> creating ./config.status
> creating Makefile
> creating config/Makefile
> creating ulog/Makefile
> creating misc/Makefile
> creating protocol/Makefile
> creating pq/Makefile
> creating pqact/Makefile
> creating pqcat/Makefile
> creating pqutil/Makefile
> creating pqcreate/Makefile
> creating pqexpire/Makefile
> creating pqing/Makefile
> creating pqsend/Makefile
> creating pqbinstats/Makefile
> creating pqbinstats/mailpqstats
> creating pqinsert/Makefile
> creating pqsurf/Makefile
> creating server/Makefile
> creating ldmping/Makefile
> creating scripts/Makefile
> creating scripts/ldmadmin
> creating scripts/ldmprods
> creating scripts/ldmfail
> creating scripts/netcheck
> creating scripts/syscheck
> creating scripts/ldmcheck
> creating notifyme/Makefile
> creating send/Makefile
> creating feedme/Makefile
> creating scour/Makefile
> creating config/ldmconfig.h
> # make install
> mkdir /usr/local/ldm/ldm-5.0.9/bin
> mkdir /usr/local/ldm/ldm-5.0.9/include
> mkdir /usr/local/ldm/ldm-5.0.9/lib
> mkdir /usr/local/ldm/ldm-5.0.9/man
> mkdir /usr/local/ldm/ldm-5.0.9/man/man1
> mkdir /usr/local/ldm/ldm-5.0.9/man/man3
> cp: libldm.a: No such file or directory
> *** Exit 1 (ignored)
> 
> Making `install' in directory /usr/local/ldm/ldm-5.0.9/src/config
> 
> updated /usr/local/ldm/ldm-5.0.9/include/ldmconfig.h
> 
> Returning to directory /usr/local/ldm/ldm-5.0.9/src
> 
> 
> Making `install' in directory /usr/local/ldm/ldm-5.0.9/src/ulog
> 
> c89 -g -DHAVE_CONFIG_H -I../config -c  ulog.c
> c89 -g -DHAVE_CONFIG_H -I../config  hupsyslog.c   -o hupsyslog
> updated /usr/local/ldm/ldm-5.0.9/include/ulog.h
> updated /usr/local/ldm/ldm-5.0.9/man/man3/ulog.3
> updated /usr/local/ldm/ldm-5.0.9/bin/hupsyslog
> updated /usr/local/ldm/ldm-5.0.9/bin/newlog
> 
> Returning to directory /usr/local/ldm/ldm-5.0.9/src
> 
> 
> Making `install' in directory /usr/local/ldm/ldm-5.0.9/src/misc
> 
> sed 's|@''LDMHOME''@|"/usr/local/ldm"|g' paths.h.in >paths.h
> c89 -g -I../config -I. -I../ulog -DHAVE_CONFIG_H -c  fdnb.c
> c89 -g -I../config -I. -I../ulog -DHAVE_CONFIG_H -c  fsStats.c
> c89 -g -I../config -I. -I../ulog -DHAVE_CONFIG_H -c  inetutil.c
> c89 -g -I../config -I. -I../ulog -DHAVE_CONFIG_H -c  mkdirs_open.c
> c89 -g -I../config -I. -I../ulog -DHAVE_CONFIG_H -c  setenv.c
> updated /usr/local/ldm/ldm-5.0.9/include/alloc.h
> updated /usr/local/ldm/ldm-5.0.9/include/alrm.h
> updated /usr/local/ldm/ldm-5.0.9/include/fdnb.h
> updated /usr/local/ldm/ldm-5.0.9/include/fsStats.h
> updated /usr/local/ldm/ldm-5.0.9/include/inetutil.h
> updated /usr/local/ldm/ldm-5.0.9/include/mkdirs_open.h
> updated /usr/local/ldm/ldm-5.0.9/include/paths.h
> updated /usr/local/ldm/ldm-5.0.9/include/setenv.h
> 
> Returning to directory /usr/local/ldm/ldm-5.0.9/src
> 
> 
> Making `install' in directory /usr/local/ldm/ldm-5.0.9/src/protocol
> 
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> atofeedt.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> h_clnt.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> ldm4_svc.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> ldm4_xdr.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> ldm4clnt.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> ldm_svc.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> ldm_xdr.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> ldm_xlen.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> ldmclnt.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> ldmprint.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> md5c.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> prod_class.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> timestamp.c
> updated /usr/local/ldm/ldm-5.0.9/include/atofeedt.h
> updated /usr/local/ldm/ldm-5.0.9/include/h_clnt.h
> updated /usr/local/ldm/ldm-5.0.9/include/ldm.h
> updated /usr/local/ldm/ldm-5.0.9/include/ldm4.h
> updated /usr/local/ldm/ldm-5.0.9/include/ldmclnt.h
> updated /usr/local/ldm/ldm-5.0.9/include/ldmprint.h
> updated /usr/local/ldm/ldm-5.0.9/include/ldm_xlen.h
> updated /usr/local/ldm/ldm-5.0.9/include/md5.h
> updated /usr/local/ldm/ldm-5.0.9/include/prod_class.h
> updated /usr/local/ldm/ldm-5.0.9/include/timestamp.h
> 
> Returning to directory /usr/local/ldm/ldm-5.0.9/src
> 
> 
> Making `install' in directory /usr/local/ldm/ldm-5.0.9/src/pq
> 
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> pq.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c  
> lcm.c
> updated /usr/local/ldm/ldm-5.0.9/include/fbits.h
> updated /usr/local/ldm/ldm-5.0.9/include/lcm.h
> updated /usr/local/ldm/ldm-5.0.9/include/pq.h
> updated /usr/local/ldm/ldm-5.0.9/man/man3/pq.3
> 
> Returning to directory /usr/local/ldm/ldm-5.0.9/src
> 
> 
> Making `install' in directory /usr/local/ldm/ldm-5.0.9/src/pqcreate
> 
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -I../pq 
> -DHAVE_CONFIG_H -c  pqcreate.c
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -I../pq 
> -DHAVE_CONFIG_H  pqcreate.o -L.. -lldm  -o pqcreate
> ld:
> Can't locate file for: -lldm
> *** Exit 1
> Stop.
> *** Exit 1
> Stop.
> *** Exit 1
> Stop.
> 
> 
> While if I use gnu make, ldm DOES compile to completion, albeit with some 
> warnings related to apparent assumptions about argument typing such as:
> 
> make[2]: Entering directory `/usr/local/ldm/ldm-5.0.9/src/send'
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -DHAVE_CONFIG_H -c 
> -o ldmsend.o ldmsend.c
> cc: Warning: ldmsend.c, line 241: In this statement, the referenced type of 
> the pointer value "remote" is const, but the referenced type of the target of 
> this assignment is not. (notconstqual)
>                 clnt = clnt_create (remote, prognum, version, protocol);
> ------------------------------------^
> cc: Warning: ldmsend.c, line 241: In this statement, the referenced type of 
> the pointer value "protocol" is const, but the referenced type of the target 
> of this assignment is not. (notconstqual)
>                 clnt = clnt_create (remote, prognum, version, protocol);
> --------------------------------------------------------------^
> cc: Warning: ldmsend.c, line 246: In this statement, the referenced type of 
> the pointer value "remote" is const, but the referenced type of the target of 
> this assignment is not. (notconstqual)
>                                 clnt_spcreateerror(remote));
> ---------------------------------------------------^
> cc: Warning: ldmsend.c, line 744: In this statement, the referenced type of 
> the pointer value "remote" is const, but the referenced type of the target of 
> this assignment is not. (notconstqual)
>                         clnt_spcreateerror(remote));
> -------------------------------------------^
> 
> 
> and
> 
> 
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -I../pq 
> -DHAVE_CONFIG_H -c -o conftab.o conftab.c 
> cc: Warning: confyy.c, line 129: In the initializer for cp, the referenced 
> type of the pointer value "yytext+1" is "unsigned char", which is not 
> compatible with "const char". (ptrmismatch)
>                         const char *cp = yytext + 1;
> -----------------------------------------^
> cc: Warning: confyy.c, line 151: In the initializer for status, the 
> referenced type of the pointer value "yytext" is "unsigned char", which is 
> not compatible with "const char". (ptrmismatch)
>                         const int status = strfeedtypet(yytext, &yylval.ft);
> --------------------------------------------------------^
> cc: Warning: confyy.c, line 175: In this statement, the referenced type of 
> the pointer value "yytext+1" is "unsigned char", which is not compatible with 
> "const char". (ptrmismatch)
>         status = wordexp(yytext +1, &yylval.wrdexp, 0);
> -------------------------^
> cc: Warning: confyy.c, line 193: In this statement, the referenced type of 
> the pointer value "yytext" is "unsigned char", which is not compatible with 
> "const char". (ptrmismatch)
>                         yylval.hsp = new_host_set(HS_NAME, yytext, NULL);
> -----------------------------------------------------------^
> cc: Warning: confyy.c, line 210: In this statement, the referenced type of 
> the pointer value "yytext+1" is "unsigned char", which is not compatible with 
> "const char". (ptrmismatch)
>                         yylval.hsp = new_host_set(HS_NAME, yytext+1, NULL);
> -----------------------------------------------------------^
> cc: Warning: confyy.c, line 225: In this statement, the referenced type of 
> the pointer value "yytext" is "unsigned char", which is not compatible with 
> "const char". (ptrmismatch)
>                         yylval.hsp = new_host_set(HS_DOTTED_QUAD, yytext, 
> NULL);
> ------------------------------------------------------------------^
> cc: Warning: confyy.c, line 241: In this statement, the referenced type of 
> the pointer value "yytext" is "unsigned char", which is not compatible with 
> "const char". (ptrmismatch)
>                         yylval.rg.cp = strdup(yytext);
> ----------------------------------------------^
> cc: Warning: confyy.c, line 264: In this statement, the referenced type of 
> the pointer value "yytext+1" is "unsigned char", which is not compatible with 
> "const char". (ptrmismatch)
>                         yylval.rg.cp = strdup(yytext +1);
> ----------------------------------------------^
> cc: Info: confyy.c, line 1733: In the initializer for yysvec[1].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-1,     0,              0,
> --------^
> cc: Info: confyy.c, line 1734: In the initializer for yysvec[2].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-2,     yysvec+1,       0,
> --------^
> cc: Info: confyy.c, line 1735: In the initializer for yysvec[3].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-56,    yysvec+1,       0,
> --------^
> cc: Info: confyy.c, line 1736: In the initializer for yysvec[4].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-111,   yysvec+1,       0,
> --------^
> cc: Info: confyy.c, line 1737: In the initializer for yysvec[5].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-5,     yysvec+1,       0,
> --------^
> cc: Info: confyy.c, line 1738: In the initializer for yysvec[6].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-8,     yysvec+1,       0,
> --------^
> cc: Info: confyy.c, line 1739: In the initializer for yysvec[7].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-173,   0,              yyvstop+1,
> --------^
> cc: Info: confyy.c, line 1742: In the initializer for yysvec[10].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-234,   0,              0,
> --------^
> cc: Info: confyy.c, line 1743: In the initializer for yysvec[11].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-295,   0,              yyvstop+7,
> --------^
> cc: Info: confyy.c, line 1744: In the initializer for yysvec[12].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-199,   yysvec+7,       yyvstop+10,
> --------^
> cc: Info: confyy.c, line 1745: In the initializer for yysvec[13].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-261,   yysvec+7,       yyvstop+12,
> --------^
> cc: Info: confyy.c, line 1746: In the initializer for yysvec[14].yystoff, an 
> array subscript expression is either less than zero or greater than the 
> largest value that can be represented by the size_t type. (badsubscript)
> yycrank+-356,   yysvec+7,       yyvstop+14,
> --------^
> [etc]
> 
> and 
> 
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -I../pq 
> -DHAVE_CONFIG_H -c -o ldmd.o ldmd.c
> cc: Warning: ldmd.c, line 431: In this statement, the referenced type of the 
> pointer value "&len" is "int", which is not compatible with "unsigned long". 
> (ptrmismatch)
>         if(getsockname(sock, (struct sockaddr *)&addr, &len) < 0)
> -------------------------------------------------------^
> cc: Warning: ldmd.c, line 532: In this statement, the referenced type of the 
> pointer value "&len" is "int", which is not compatible with "unsigned long". 
> (ptrmismatch)
>         xp_sock = accept(sock, (struct sockaddr *)&raddr, &len);
> ----------------------------------------------------------^
> 
> and 
> 
> c89 -g -I../config -I. -I../misc -I../ulog -I../protocol -I../pq 
> -DHAVE_CONFIG_H -c -o remote.o remote.c
> cc: Warning: remote.c, line 43: In this statement, the referenced type of the 
> pointer value "&optlen" is "int", which is not compatible with "unsigned 
> long". (ptrmismatch)
>                         (char *) &optval, &optlen) < 0)
> ------------------------------------------^
> 
> Anyhow, just thought I'd send along this feedback in case you hear from 
> other Tru64 users. 
> 
> Regards,
> 
> Joe
> 
> 
> ------- End of Forwarded Message
> 

===============================================================================
Robb Kambic                                Unidata Program Center
Software Engineer III                      Univ. Corp for Atmospheric Research
address@hidden             WWW: http://www.unidata.ucar.edu/
===============================================================================