bug-textutils
[Top][All Lists]
Advanced

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

textutils 64bit on HPUX 11?


From: Robert A Nesius
Subject: textutils 64bit on HPUX 11?
Date: Wed, 18 Jul 2001 18:44:40 -0700 (PDT)

Has anyone successfully built textutils with large file support
(64-bit) on HPUX 11.00?  I've been working on this for awhile and the build
fails in a few places with the following error:

/opt/ansic/bin/cc -DLOCALEDIR=\"/usr/intel/00r1/share/locale\" -DHAVE_CONFIG_H 
-I.. -I. -I../lib -I../intl    +DA2.0W -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -Ae -O -D_HPUX_SOURCE -DSYSV -c csplit.c
/opt/ansic/bin/cc  +DA2.0W -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Ae -O 
-D_HPUX_SOURCE -DSYSV   -o csplit  csplit.o ../intl/libintl.a ../lib/libtu.a
ld: Unsatisfied symbol "__strtoull" in file ../lib/libtu.a[xstrtoumax.o]
1 errors.
gmake[2]: *** [csplit] Error 1
gmake[2]: Leaving directory 
`/fs29/comp.apps.3/00r1.builds/rnesius/textutils/textutils-2.0/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory 
`/fs29/comp.apps.3/00r1.builds/rnesius/textutils/textutils-2.0'
gmake: *** [all-recursive-am] Error 2


The 32-bit build of this tool succeeds.  It looks like the
32-bit libc* files have this symbol in them.

libc.0
__strtoull          |    827232|extern|entry  |
__strtoull          |    827288|extern|code   |$CODE$
libc.1
__strtoull          |    827232|extern|entry  |
__strtoull          |    827288|extern|code   |$CODE$
libc.2
__strtoull          |    804428|extern|entry  |
__strtoull          |    804484|extern|code   |$CODE$
libc.a
S$3$__strtoull      |      1416|static|data   |$LIT$
__strtoull          |         0|extern|entry  |$CODE$
libc.sl
__strtoull          |    804428|extern|entry  |
__strtoull          |    804484|extern|code   |$CODE$
libc_r.sl
__strtoull          |    827232|extern|entry  |
__strtoull          |    827288|extern|code   |$CODE$

But the 64-bit versions do not...
libc.2
libc.a
libc.sl
libcl.2
libcl.a
libcl.sl

(above output the result of nm <file> | grep __strtoull )

I noticed it seems the following code (obtained from the C preprocessor)
is the problem.

> strtol_error
> xstrtoumax  (const char *s, char **ptr, int strtol_base,
>            uintmax_t  *val, const char *valid_suffixes)
> {
>   char *t_ptr;
>   char **p;
>   uintmax_t  tmp;
>
>  ((0 <= strtol_base && strtol_base <= 36) ? (void)0 : __assert("0 <= 
> strtol_base && strtol_base <= 36", "xstrtol.c", 123)) ;
>
>  p = (ptr ? ptr : &t_ptr);
>
>  if (! (! ((uintmax_t) 0 < (uintmax_t) -1)) )
>    {
>      const char *q = s;
>      while ((1 && (__SB_masks ? __SB_masks[(unsigned char) *q] & 0x200 : 
> _isspace((unsigned char) *q))) )
>
>        ++q;
>      if (*q == '-')
>        return LONGINT_INVALID;
>
>    }
>
>  errno = 0;
>  tmp = __strtoull(s, p, strtol_base) ;   /* THIS LINE */
>  if (errno != 0)
>    return LONGINT_OVERFLOW;
>  if (*p == s)
>    return LONGINT_INVALID;
...

which comes from xstrtol.c

>  errno = 0;
>  tmp = __strtol (s, p, strtol_base);
>  if (errno != 0)
>    return LONGINT_OVERFLOW;

xstrtoumax.c >redfines __strtol like so:

>#define __strtol strtoumax
>#define __strtol_t uintmax_t
>#define __xstrtol xstrtoumax
>#include "xstrtol.c"
>
But I can't find where strtoumax is redefined as __strtoull
(or anything else).

I do see:
[phpc0093]-> lib 720> grep strtoull *.c
strtol.c:/* Nonzero if we are defining `strtoul' or `strtoull', operating on
strtol.c:#    define strtol __strtoull_l
strtol.c:#    define strtol strtoull
strtol.c:/* If QUAD is defined, we are defining `strtoll' or `strtoull',
strtoull.c:strong_alias (__strtoull_internal, __strtouq_internal)
strtoull.c:weak_alias (strtoull, strtouq)
strtoumax.c:  unsigned long long strtoull PARAMS ((char const *, char **, int));
strtoumax.c:    USE_IF_EQUIVALENT (strtoull)
xstrtoul.c:#include "strtoull.c"


I can't complete a sequesce of #defines that leads me to __strtoull.  It's
driving me nuts.  Any ideas?

Thanks much!

-Rob

-- 
#include <sig.h>
------------------------------------------------------------------
Robert Nesius             address@hidden    503.712.2181
DPG Engineering Computing SW Applications Team





reply via email to

[Prev in Thread] Current Thread [Next in Thread]