diff --git a/ChangeLog b/ChangeLog index c2f429f739..4893a8d65f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,53 @@ 2002-03-12 Ulrich Drepper + * include/stdlib.h (__libc_drand48_data): Declare as hidden. + * stdlib/drand48.c: Remove declaration of __libc_drand48_data here. + * stdlib/erand48.c: Likewise. + * stdlib/jrand48.c: Likewise. + * stdlib/lcong48.c: Likewise. + * stdlib/lrand48.c: Likewise. + * stdlib/mrand48.c: Likewise. + * stdlib/nrand48.c: Likewise. + * stdlib/seed48.c: Likewise. + * stdlib/srand48.c: Likewise. + + * stdio-common/_itoa.c (_itoa_base_table): Declare as hidden. + (_itoa_lower_digits_internal): New declaration. + (_itoa_upper_digits_internal): New declaration. + (_itoa): Use INTUSE to acces _itoa_upper_digits and _itoa_lower_digits. + * stdio-common.h (_itoa_lower_digits_internal): New declaration. + (_itoa_upper_digits_internal): New declaration. + (_itoa_word): Use INTUSE to acces _itoa_upper_digits and + _itoa_lower_digits. + * stdio-common/itoa-digits.c: Use INTVARDEF with _itoa_lower_digits. + * stdio-common/itoa-udigits.c: Use INTVARDEF with _itoa_upper_digits. + + * elf/dl-minimal.c (_itoa): Declare _itoa_lower_digits as hidden. + * elf/dl-reloc.c (_dl_reloc_bad_type): Likewise. + + * stdio-common/_itowa.c (_itoa_base_table): Declare as hidden. + (_itowa_lower_digits): Likewise. + (_itowa_upper_digits): Likewise. + * stdio-common/_itowa.h (_itowa_lower_digits): Likewise. + (_itowa_upper_digits): Likewise. + + * intl/plural-exp.h (attribute_hidden): Define as empty macro if + not already defined. + (GERMANIC_PLURAL): Declare as hidden. + + * posix/getopt.c (__getopt_initialized): Declare as hidden. + (attribute_hidden): Define as empty macro if not already defined. + + * iconv/gconv_int.h (__gconv_path_elem): Declare hidden. + (__gconv_max_path_elem_len): Likewise. + (__gconv_path_envvar): Likewise. + + * math/Makefile (gmp-objs): Remove mp_clz_tab. + * stdlib/Makefile (aux): Remove mp_clz_tab. + * stdlib/mp_clz_tab.c: Removed. Not needed anywhere. + + * stdlib/exit.h (__exit_funcs): Declare as hidden. + * posix/bug-regex5.c (main): Use nl_langinfo instead of _NL_CURRENT. * locale/localeinfo.h: Add attribute_hidden to _nl_current_LC_XXX, diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c index 275ad86fe0..abc829b53a 100644 --- a/elf/dl-minimal.c +++ b/elf/dl-minimal.c @@ -290,7 +290,7 @@ _itoa (value, buflim, base, upper_case) unsigned int base; int upper_case; { - extern const char _itoa_lower_digits[]; + extern const char _itoa_lower_digits[] attribute_hidden; assert (! upper_case); diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c index 9e3901470c..29f302a25a 100644 --- a/elf/dl-reloc.c +++ b/elf/dl-reloc.c @@ -210,7 +210,7 @@ void internal_function _dl_reloc_bad_type (struct link_map *map, unsigned int type, int plt) { - extern const char _itoa_lower_digits[]; + extern const char _itoa_lower_digits[] attribute_hidden; #define DIGIT(b) _itoa_lower_digits[(b) & 0xf]; /* XXX We cannot translate these messages. */ diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h index d9edcb079f..ae6be36b5e 100644 --- a/iconv/gconv_int.h +++ b/iconv/gconv_int.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -33,9 +33,9 @@ struct path_elem }; /* Variable with search path for `gconv' implementation. */ -extern struct path_elem *__gconv_path_elem; +extern struct path_elem *__gconv_path_elem attribute_hidden; /* Maximum length of a single path element. */ -extern size_t __gconv_max_path_elem_len; +extern size_t __gconv_max_path_elem_len attribute_hidden; /* Structure for alias definition. Simply two strings. */ @@ -121,7 +121,7 @@ extern size_t __gconv_nmodules; extern struct gconv_module *__gconv_modules_db; /* Value of the GCONV_PATH environment variable. */ -extern const char *__gconv_path_envvar; +extern const char *__gconv_path_envvar attribute_hidden; /* The gconv functions expects the name to be in upper case and complete, diff --git a/include/stdlib.h b/include/stdlib.h index c76763ef51..16f7aa2ec2 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -38,6 +38,9 @@ extern int __lcong48_r (unsigned short int __param[7], extern int __drand48_iterate (unsigned short int __xsubi[3], struct drand48_data *__buffer); +/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ +extern struct drand48_data __libc_drand48_data attribute_hidden; + extern int __setenv (__const char *__name, __const char *__value, int __replace); extern int __unsetenv (__const char *__name); diff --git a/intl/plural-exp.h b/intl/plural-exp.h index 389a5c626e..25b7c8b8aa 100644 --- a/intl/plural-exp.h +++ b/intl/plural-exp.h @@ -1,5 +1,5 @@ /* Expression parsing and evaluation for plural form selection. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. This file is part of the GNU C Library. @@ -106,10 +106,14 @@ struct parse_args # define EXTRACT_PLURAL_EXPRESSION extract_plural_expression #endif +#ifndef attribute_hidden +# define attribute_hidden +#endif + extern void FREE_EXPRESSION PARAMS ((struct expression *exp)) internal_function; extern int PLURAL_PARSE PARAMS ((void *arg)); -extern struct expression GERMANIC_PLURAL; +extern struct expression GERMANIC_PLURAL attribute_hidden; extern void EXTRACT_PLURAL_EXPRESSION PARAMS ((const char *nullentry, struct expression **pluralp, unsigned long int *npluralsp)) diff --git a/math/Makefile b/math/Makefile index f960d80376..f7e88f6fe1 100644 --- a/math/Makefile +++ b/math/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -183,7 +183,7 @@ o = .os endif gmp-objs = $(patsubst %,$(common-objpfx)stdlib/%$o,\ add_n sub_n cmp addmul_1 mul_1 mul_n divmod_1 \ - lshift rshift mp_clz_tab udiv_qrnnd inlines) + lshift rshift udiv_qrnnd inlines) $(objpfx)atest-exp: $(gmp-objs) $(objpfx)atest-sincos: $(gmp-objs) $(objpfx)atest-exp2: $(gmp-objs) diff --git a/posix/getopt.c b/posix/getopt.c index 2e929b71bf..289d137e20 100644 --- a/posix/getopt.c +++ b/posix/getopt.c @@ -2,7 +2,7 @@ NOTE: getopt is now part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to drepper@gnu.org before changing it! - Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001 + Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -91,6 +91,10 @@ # endif #endif +#ifndef attribute_hidden +# define attribute_hidden +#endif + /* This version of `getopt' appears to the caller like standard Unix `getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. @@ -134,7 +138,7 @@ int optind = 1; causes problems with re-calling getopt as programs generally don't know that. */ -int __getopt_initialized; +int __getopt_initialized attribute_hidden; /* The next char to be scanned in the option-element in which the last option character we returned was found. diff --git a/stdio-common/_itoa.c b/stdio-common/_itoa.c index e36cd520f7..2d0535ff17 100644 --- a/stdio-common/_itoa.c +++ b/stdio-common/_itoa.c @@ -78,7 +78,7 @@ struct base_table_t /* Local variables. */ -const struct base_table_t _itoa_base_table[] = +const struct base_table_t _itoa_base_table[] attribute_hidden = { #if BITS_PER_MP_LIMB == 64 /* 2 */ {SEL1(0ul) 1, 1}, @@ -158,8 +158,10 @@ const struct base_table_t _itoa_base_table[] = /* Lower-case digits. */ extern const char _itoa_lower_digits[]; +extern const char _itoa_lower_digits_internal[] attribute_hidden; /* Upper-case digits. */ extern const char _itoa_upper_digits[]; +extern const char _itoa_upper_digits_internal[] attribute_hidden; char * @@ -169,7 +171,9 @@ _itoa (value, buflim, base, upper_case) unsigned int base; int upper_case; { - const char *digits = upper_case ? _itoa_upper_digits : _itoa_lower_digits; + const char *digits = (upper_case + ? INTUSE(_itoa_upper_digits) + : INTUSE(_itoa_lower_digits)); const struct base_table_t *brec = &_itoa_base_table[base - 2]; switch (base) diff --git a/stdio-common/_itoa.h b/stdio-common/_itoa.h index 1b4b0ff6c4..42bc3400fa 100644 --- a/stdio-common/_itoa.h +++ b/stdio-common/_itoa.h @@ -29,12 +29,18 @@ extern char *_itoa (unsigned long long int value, char *buflim, unsigned int base, int upper_case); +extern const char _itoa_upper_digits[]; +extern const char _itoa_upper_digits_internal[] attribute_hidden; +extern const char _itoa_lower_digits[]; +extern const char _itoa_lower_digits_internal[] attribute_hidden; + static inline char * __attribute__ ((unused)) _itoa_word (unsigned long value, char *buflim, unsigned int base, int upper_case) { - extern const char _itoa_upper_digits[], _itoa_lower_digits[]; - const char *digits = upper_case ? _itoa_upper_digits : _itoa_lower_digits; + const char *digits = (upper_case + ? INTUSE(_itoa_upper_digits) + : INTUSE(_itoa_lower_digits)); switch (base) { diff --git a/stdio-common/_itowa.c b/stdio-common/_itowa.c index 20b474e049..b9cc341dd9 100644 --- a/stdio-common/_itowa.c +++ b/stdio-common/_itowa.c @@ -1,5 +1,5 @@ /* Internal function for converting integers to ASCII. - Copyright (C) 1994, 1995, 1996, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1994,1995,1996,1999,2000,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Torbjorn Granlund and Ulrich Drepper . @@ -77,12 +77,12 @@ struct base_table_t #endif /* Factor table for the different bases. */ -extern const struct base_table_t _itoa_base_table[]; +extern const struct base_table_t _itoa_base_table[] attribute_hidden; /* Lower-case digits. */ -extern const wchar_t _itowa_lower_digits[]; +extern const wchar_t _itowa_lower_digits[] attribute_hidden; /* Upper-case digits. */ -extern const wchar_t _itowa_upper_digits[]; +extern const wchar_t _itowa_upper_digits[] attribute_hidden; wchar_t * diff --git a/stdio-common/_itowa.h b/stdio-common/_itowa.h index 0af747bb76..d3a5447304 100644 --- a/stdio-common/_itowa.h +++ b/stdio-common/_itowa.h @@ -35,7 +35,8 @@ __attribute__ ((unused)) _itowa_word (unsigned long value, wchar_t *buflim, unsigned int base, int upper_case) { - extern const wchar_t _itowa_upper_digits[], _itowa_lower_digits[]; + extern const wchar_t _itowa_upper_digits[] attribute_hidden; + extern const wchar_t _itowa_lower_digits[] attribute_hidden; const wchar_t *digits = (upper_case ? _itowa_upper_digits : _itowa_lower_digits); wchar_t *bp = buflim; diff --git a/stdio-common/itoa-digits.c b/stdio-common/itoa-digits.c index c4d252603c..cbdc09b105 100644 --- a/stdio-common/itoa-digits.c +++ b/stdio-common/itoa-digits.c @@ -1,5 +1,5 @@ /* Digits. - Copyright (C) 1994, 1995, 1996, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1994,1995,1996,1999,2000,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,3 +20,4 @@ /* Lower-case digits. */ const char _itoa_lower_digits[36] = "0123456789abcdefghijklmnopqrstuvwxyz"; +INTVARDEF(_itoa_lower_digits) diff --git a/stdio-common/itoa-udigits.c b/stdio-common/itoa-udigits.c index d89e439cce..0ed4dc119a 100644 --- a/stdio-common/itoa-udigits.c +++ b/stdio-common/itoa-udigits.c @@ -1,5 +1,5 @@ /* Digits. - Copyright (C) 1994, 1995, 1996, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1994,1995,1996,1999,2000,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,3 +20,4 @@ /* Upper-case digits. */ const char _itoa_upper_digits[36] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +INTVARDEF(_itoa_upper_digits) diff --git a/stdlib/Makefile b/stdlib/Makefile index bfb8e1f78c..b92e0315b5 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -70,7 +70,9 @@ mpn-headers = longlong.h gmp.h gmp-impl.h gmp-mparam.h asm-syntax.h routines := $(strip $(routines) $(mpn-routines)) \ dbl2mpn ldbl2mpn \ mpn2flt mpn2dbl mpn2ldbl -aux := mp_clz_tab fpioconst +# mp_clz seems not to be used. At least on x86. If removing the file +# does not cause problem clean this up and actually remove the file. +aux := fpioconst# mp_clz_tab distribute := $(distribute) $(mpn-headers) gen-mpn-copy fpioconst.h generated += isomac isomac.out diff --git a/stdlib/drand48.c b/stdlib/drand48.c index cff95e10a7..06b586f812 100644 --- a/stdlib/drand48.c +++ b/stdlib/drand48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997, 1998, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1998,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , August 1995. @@ -19,8 +19,6 @@ #include -/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ -extern struct drand48_data __libc_drand48_data; double drand48 () diff --git a/stdlib/erand48.c b/stdlib/erand48.c index cceba27aea..7ed4e4cab6 100644 --- a/stdlib/erand48.c +++ b/stdlib/erand48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , August 1995. @@ -19,8 +19,6 @@ #include -/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ -extern struct drand48_data __libc_drand48_data; double erand48 (xsubi) diff --git a/stdlib/exit.h b/stdlib/exit.h index 2b2b58eb7d..055506f04e 100644 --- a/stdlib/exit.h +++ b/stdlib/exit.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1996, 1997, 1999, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1991,1996,1997,1999,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -56,7 +56,7 @@ struct exit_function_list size_t idx; struct exit_function fns[32]; }; -extern struct exit_function_list *__exit_funcs; +extern struct exit_function_list *__exit_funcs attribute_hidden; extern struct exit_function *__new_exitfn (void); diff --git a/stdlib/jrand48.c b/stdlib/jrand48.c index 1df00bc3a1..81fa8241ef 100644 --- a/stdlib/jrand48.c +++ b/stdlib/jrand48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , August 1995. @@ -19,8 +19,6 @@ #include -/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ -extern struct drand48_data __libc_drand48_data; long int jrand48 (xsubi) diff --git a/stdlib/lcong48.c b/stdlib/lcong48.c index b9e683eabe..075494a888 100644 --- a/stdlib/lcong48.c +++ b/stdlib/lcong48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , August 1995. @@ -19,8 +19,6 @@ #include -/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ -extern struct drand48_data __libc_drand48_data; void lcong48 (param) diff --git a/stdlib/lrand48.c b/stdlib/lrand48.c index 97773b4c73..a76d77365c 100644 --- a/stdlib/lrand48.c +++ b/stdlib/lrand48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997, 1998, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1998,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , August 1995. @@ -19,8 +19,6 @@ #include -/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ -extern struct drand48_data __libc_drand48_data; long int lrand48 () diff --git a/stdlib/mp_clz_tab.c b/stdlib/mp_clz_tab.c deleted file mode 100644 index 520ea31930..0000000000 --- a/stdlib/mp_clz_tab.c +++ /dev/null @@ -1,37 +0,0 @@ -/* __clz_tab -- support for longlong.h - Copyright (C) 1991, 1993, 1994, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in the GNU MP Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#if 0 -#include "gmp.h" -#include "gmp-impl.h" -#endif - -const -unsigned char __clz_tab[] = -{ - 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, -}; diff --git a/stdlib/mrand48.c b/stdlib/mrand48.c index 09c9666729..cb60191110 100644 --- a/stdlib/mrand48.c +++ b/stdlib/mrand48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997, 1998, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1998,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , August 1995. @@ -19,8 +19,6 @@ #include -/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ -extern struct drand48_data __libc_drand48_data; long int mrand48 () diff --git a/stdlib/nrand48.c b/stdlib/nrand48.c index 4e572a4182..0c6b2707b8 100644 --- a/stdlib/nrand48.c +++ b/stdlib/nrand48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , August 1995. @@ -19,8 +19,6 @@ #include -/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ -extern struct drand48_data __libc_drand48_data; long int nrand48 (xsubi) diff --git a/stdlib/seed48.c b/stdlib/seed48.c index 548231a642..7b23d2fba9 100644 --- a/stdlib/seed48.c +++ b/stdlib/seed48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997, 1998, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1998,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , August 1995. @@ -19,8 +19,6 @@ #include -/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ -extern struct drand48_data __libc_drand48_data; unsigned short int * seed48 (seed16v) diff --git a/stdlib/srand48.c b/stdlib/srand48.c index 6c5d94f19e..c8ea919877 100644 --- a/stdlib/srand48.c +++ b/stdlib/srand48.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , August 1995. @@ -19,8 +19,6 @@ #include -/* Global state for non-reentrant functions. Defined in drand48-iter.c. */ -extern struct drand48_data __libc_drand48_data; void srand48 (seedval)