1997-06-26 02:06  Ulrich Drepper  <drepper@cygnus.com>

	* Makerules ($(common-objpfx)libc.so): Use $(load-map-file) in
	dependency, not $(libc-map).

	* sysdeps/posix/mk-stdiolim.c: Pretty print.

1997-06-25 15:54  Fila Kolodny  <fila@ibi.com>

	* sysdeps/posix/Makefile ($(common-objpfx)bits/stdio_lim.h): Don't
	conditionalize this on whether we are cross-compiling.

1997-06-21 15:47  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* elf/dl-lookup.c (do_lookup): Use default definition
	for a default versioned symbol.

	* elf/dl-version.c (_dl_check_map_versions): Set the hidden field.

	* elf/dlvsym.c (__dlvsym): Set the hidden field to 1.

	* elf/link.h (r_found_version): Add the hidden field.

	* math/test-matherr.c: New file.

	* math/Makefile (tests): Add test-matherr.
	(libm-support): Put back s_matherr.
	(static-only-routines, aux): Remove s_matherr.
This commit is contained in:
Ulrich Drepper 1997-06-26 00:09:27 +00:00
parent 478b92f03a
commit f9a73ae19a
12 changed files with 85 additions and 34 deletions

View File

@ -1,3 +1,32 @@
1997-06-26 02:06 Ulrich Drepper <drepper@cygnus.com>
* Makerules ($(common-objpfx)libc.so): Use $(load-map-file) in
dependency, not $(libc-map).
* sysdeps/posix/mk-stdiolim.c: Pretty print.
1997-06-25 15:54 Fila Kolodny <fila@ibi.com>
* sysdeps/posix/Makefile ($(common-objpfx)bits/stdio_lim.h): Don't
conditionalize this on whether we are cross-compiling.
1997-06-21 15:47 H.J. Lu <hjl@gnu.ai.mit.edu>
* elf/dl-lookup.c (do_lookup): Use default definition
for a default versioned symbol.
* elf/dl-version.c (_dl_check_map_versions): Set the hidden field.
* elf/dlvsym.c (__dlvsym): Set the hidden field to 1.
* elf/link.h (r_found_version): Add the hidden field.
* math/test-matherr.c: New file.
* math/Makefile (tests): Add test-matherr.
(libm-support): Put back s_matherr.
(static-only-routines, aux): Remove s_matherr.
1997-06-23 23:39 Ulrich Drepper <drepper@cygnus.com>
* string/Makefile (headers): Change bytesex.h to bits/endian.h.

View File

@ -383,7 +383,7 @@ libc-map = $(..)libc.map
$(common-objpfx)libc.so: $(elfobjdir)/soinit.so \
$(common-objpfx)libc_pic.a \
$(elfobjdir)/sofini.so $(elfobjdir)/ld.so \
$(libc-map)
$(load-map-file)
$(build-shlib)
ifdef libc.so-version
$(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so

3
config.guess vendored
View File

@ -613,6 +613,9 @@ EOF
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit 0 ;;
news*:NEWS-OS:*:6*)
echo mips-sony-newsos6
exit 0 ;;
R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}

2
config.sub vendored
View File

@ -150,7 +150,7 @@ case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \
| arme[lb] | pyramid \
| arme[lb] | pyramid | mn10200 | mn10300 \
| tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
| alpha | we32k | ns16k | clipper | i370 | sh \
| powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \

View File

@ -151,10 +151,12 @@ do_lookup (const char *undef_name, unsigned long int hash,
}
else
{
/* We can match the version information. */
/* We can match the version information or use the
default one. */
ElfW(Half) ndx = verstab[symidx] & 0x7fff;
if (map->l_versions[ndx].hash != version->hash
|| strcmp (map->l_versions[ndx].name, version->name))
if ((map->l_versions[ndx].hash != version->hash
|| strcmp (map->l_versions[ndx].name, version->name))
&& (version->hidden || map->l_versions[ndx].hash))
/* It's not the version we want. */
continue;
}

View File

@ -274,6 +274,7 @@ _dl_check_map_versions (struct link_map *map, int verbose)
{
ElfW(Half) ndx = aux->vna_other & 0x7fff;
map->l_versions[ndx].hash = aux->vna_hash;
map->l_versions[ndx].hidden = aux->vna_other & 0x8000;
map->l_versions[ndx].name = &strtab[aux->vna_name];
map->l_versions[ndx].filename = &strtab[ent->vn_file];

View File

@ -95,6 +95,7 @@ __dlvsym (void *handle, const char *name, const char *version_str)
/* Compute hash value to the version string. */
args.version.name = version_str;
args.version.hidden = 1;
args.version.hash = _dl_elf_hash (version_str);
/* We don't have a specific file where the symbol can be found. */
args.version.filename = NULL;

View File

@ -87,6 +87,7 @@ struct r_found_version
const char *name;
ElfW(Word) hash;
int hidden;
const char *filename;
};

View File

@ -29,9 +29,7 @@ headers := math.h bits/mathcalls.h bits/mathinline.h bits/huge_val.h \
distribute := math_private.h machine/asm.h machine/endian.h
# FPU support code.
aux := fpu_control setfpucw s_matherr
static-only-routines := s_matherr
aux := fpu_control setfpucw
# Build the -lm library.
@ -40,7 +38,7 @@ extra-libs-others = $(extra-libs)
libm-map := libm.map
libm-support = k_standard s_lib_version s_signgam \
libm-support = k_standard s_lib_version s_matherr s_signgam \
s_lrint s_llrint s_lround s_llround \
fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg \
ftestexcept fegetround fesetround fegetenv feholdexcpt \
@ -79,7 +77,7 @@ distribute += $(long-c-yes:=.c)
# Rules for the test suite.
tests = test-float test-double $(test-longdouble-$(long-double-fcts)) \
test-ifloat test-idouble
test-ifloat test-idouble test-matherr
# We do the `long double' tests only if this data type is available and
# distrinct from `double'.
#
@ -95,6 +93,7 @@ LDLIBS-test-ildoubl = libm
LDLIBS-test-float = libm
LDLIBS-test-double = libm
LDLIBS-test-ldouble = libm
LDLIBS-test-matherr = libm
distribute += libm-test.c

23
math/test-matherr.c Normal file
View File

@ -0,0 +1,23 @@
#undef _SVID_SOURCE
#define _SVID_SOURCE
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
static int fail = 1;
int
matherr (struct exception *s)
{
printf ("matherr is working\n");
fail = 0;
return 1;
}
int
main (void)
{
_LIB_VERSION = _SVID_;
acos (2.0);
return fail;
}

View File

@ -19,17 +19,9 @@
ifneq (yes,$(inhibit-stdio_lim))
# Disable these rules if we generate stdio_lim.h by other means.
ifeq (yes,$(cross-compiling))
$(common-objpfx)bits/stdio_lim.h:
@echo
@echo "You must build <bits/stdio_lim.h> by hand. Stop."
@echo
@exit 1
else
$(common-objpfx)bits/stdio_lim.h: $(common-objpfx)mk-stdiolim
$(dir $<)$(notdir $<) > $@-t
mv $@-t $@
endif
# Turn into a version that works when cd'd into $(objdir).
mk-stdiolim-CFLAGS = $(patsubst -I$(shell pwd)//%,-I/%,\

View File

@ -23,49 +23,49 @@ main()
{
/* These values correspond to the code in sysdeps/posix/tempname.c.
Change the values here if you change that code. */
printf("#define L_tmpnam %u\n", sizeof("/usr/tmp/") + 9);
printf("#define TMP_MAX %u\n", 62 * 62 * 62);
printf ("#define L_tmpnam %u\n", sizeof ("/usr/tmp/") + 9);
printf ("#define TMP_MAX %u\n", 62 * 62 * 62);
puts ("#ifdef __USE_POSIX");
printf("#define L_ctermid %u\n", sizeof("/dev/tty"));
printf("#define L_cuserid 9\n");
puts ("#endif");
puts ("#ifdef __USE_POSIX");
printf ("# define L_ctermid %u\n", sizeof ("/dev/tty"));
printf ("# define L_cuserid 9\n");
puts ("#endif");
/* POSIX does not require that OPEN_MAX and PATH_MAX be defined, so
<bits/local_lim.h> will not define them if they are run-time
variant (which is the case in the Hurd). ANSI still requires
variant (which is the case in the Hurd). ISO still requires
that FOPEN_MAX and FILENAME_MAX be defined, however. */
printf("#define FOPEN_MAX %u\n",
printf ("#define FOPEN_MAX %u\n",
#ifdef OPEN_MAX
OPEN_MAX
OPEN_MAX
#else
/* This is the minimum number of files that the implementation
guarantees can be open simultaneously. OPEN_MAX not being
defined means the maximum is run-time variant; but POSIX.1
requires that it never be less than _POSIX_OPEN_MAX, so that is
a good minimum to use. */
_POSIX_OPEN_MAX
_POSIX_OPEN_MAX
#endif
);
);
printf("#define FILENAME_MAX %u\n",
printf ("#define FILENAME_MAX %u\n",
#ifdef PATH_MAX
PATH_MAX
PATH_MAX
#else
/* This is supposed to be the size needed to hold the longest file
name string the implementation guarantees can be opened.
PATH_MAX not being defined means the actual limit on the length
of a file name is runtime-variant (or it is unlimited). ANSI
of a file name is runtime-variant (or it is unlimited). ISO
says in such a case FILENAME_MAX should be a good size to
allocate for a file name string. POSIX.1 guarantees that a
file name up to _POSIX_PATH_MAX chars long can be opened, so
this value must be at least that. */
1024 /* _POSIX_PATH_MAX is 255. */
1024 /* _POSIX_PATH_MAX is 255. */
#endif
);
);
exit(0);
}