From 51d46f733a26fc9da14cb5d45d88d09e4fc088dd Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 25 Jul 2002 08:19:59 +0000 Subject: [PATCH] Update. 2002-07-25 Ulrich Drepper * sysdeps/wordsize-32/divdi3.c: Define __divdi3_internal. * sysdeps/wordsize-32/lldiv.c: Make gcc use __divdi3_internal instead of __divdi3. * sysdeps/unix/sysv/linux/adjtime.c: Use __adjtimex_internal. * sysdeps/unix/sysv/linux/ntp_gettime.c: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Add __adjtimex_internal alias for adjtimex syscall. * elf/dl-minimal.c: Define __assert_fail_internal. * assert/assert.c: Likewise. * include/assert.h: Define __assert_file macro if !SHARED and not NOT_IN_libc. * iconv/Makefile: Define NOT_IN_libc for objects in standalone programs. * locale/Makefile: Likewise. * nscd/Makefile: Likewise. * catgets/Makefile: Likewise. succesful seek call. Simplify error checking. --- ChangeLog | 24 +++++++++++++++++++++++- assert/assert.c | 1 + catgets/Makefile | 4 +++- elf/dl-minimal.c | 1 + iconv/Makefile | 5 +++++ include/assert.h | 3 +++ locale/Makefile | 11 +++++++++++ nscd/Makefile | 3 +++ sysdeps/unix/sysv/linux/adjtime.c | 5 +++-- sysdeps/unix/sysv/linux/ntp_gettime.c | 8 ++++++-- sysdeps/unix/sysv/linux/syscalls.list | 2 +- sysdeps/wordsize-32/divdi3.c | 1 + sysdeps/wordsize-32/lldiv.c | 9 ++++++++- 13 files changed, 69 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index bc0ccd0..22c423d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2002-07-25 Ulrich Drepper + + * sysdeps/wordsize-32/divdi3.c: Define __divdi3_internal. + * sysdeps/wordsize-32/lldiv.c: Make gcc use __divdi3_internal instead + of __divdi3. + + * sysdeps/unix/sysv/linux/adjtime.c: Use __adjtimex_internal. + * sysdeps/unix/sysv/linux/ntp_gettime.c: Likewise. + * sysdeps/unix/sysv/linux/syscalls.list: Add __adjtimex_internal + alias for adjtimex syscall. + + * elf/dl-minimal.c: Define __assert_fail_internal. + * assert/assert.c: Likewise. + * include/assert.h: Define __assert_file macro if !SHARED and not + NOT_IN_libc. + + * iconv/Makefile: Define NOT_IN_libc for objects in standalone + programs. + * locale/Makefile: Likewise. + * nscd/Makefile: Likewise. + * catgets/Makefile: Likewise. + 2002-07-24 Ulrich Drepper * libio/fileops.c (_IO_file_seekoff_mmap): Do use fp->_offset to @@ -8,7 +30,7 @@ * libio/tst-freopen.c (main): Remove unused variable. * libio/fileops.c (_IO_file_seekoff_mmap): Set fp->_offset after - succesful seek call. Simply error checking. + succesful seek call. Simplify error checking. 2002-07-25 Jakub Jelinek diff --git a/assert/assert.c b/assert/assert.c index 4f8fbfb..334382b 100644 --- a/assert/assert.c +++ b/assert/assert.c @@ -42,6 +42,7 @@ extern const char *__progname; # include FATAL_PREPARE_INCLUDE #endif +#undef __assert_fail void __assert_fail (const char *assertion, const char *file, unsigned int line, const char *function) diff --git a/catgets/Makefile b/catgets/Makefile index b4f9411..f3069bd 100644 --- a/catgets/Makefile +++ b/catgets/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +# Copyright (C) 1996,1997,1998,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 @@ -45,6 +45,8 @@ $(objpfx)gencat: $(gencat-modules:%=$(objpfx)%.o) catgets-CPPFLAGS := -DNLSPATH='"$(msgcatdir)/%L/%N:$(msgcatdir)/%L/LC_MESSAGES/%N:$(msgcatdir)/%l/%N:$(msgcatdir)/%l/LC_MESSAGES/%N:"' \ -DHAVE_CONFIG_H +CPPFLAGS-gencat = -DNOT_IN_libc + generated = de.msg test1.cat test1.h sample.SJIS.cat test-gencat.h generated-dirs = de diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c index a6c1803..0627a89 100644 --- a/elf/dl-minimal.c +++ b/elf/dl-minimal.c @@ -209,6 +209,7 @@ Inconsistency detected by ld.so: %s: %u: %s%sAssertion `%s' failed!\n", assertion); } +INTDEF(__assert_fail) void weak_function __assert_perror_fail (int errnum, diff --git a/iconv/Makefile b/iconv/Makefile index 8882cb9..eb8ffac 100644 --- a/iconv/Makefile +++ b/iconv/Makefile @@ -63,6 +63,11 @@ CFLAGS-gconv_cache.c += -DGCONV_DIR='"$(gconvdir)"' CFLAGS-gconv_conf.c = -DGCONV_PATH='"$(gconvdir)"' CFLAGS-iconvconfig.c = -DGCONV_PATH='"$(gconvdir)"' -DGCONV_DIR='"$(gconvdir)"' +CPPFLAGS-iconv_charmap = -DNOT_IN_libc +CPPFLAGS-iconvconfig = -DNOT_IN_libc +CPPFLAGS-strtab = -DNOT_IN_libc +CPPFLAGS-charmap = -DNOT_IN_libc + include ../Rules $(inst_bindir)/iconv: $(objpfx)iconv_prog $(+force) diff --git a/include/assert.h b/include/assert.h index e18d373..30afabf 100644 --- a/include/assert.h +++ b/include/assert.h @@ -5,3 +5,6 @@ extern void __assert_fail_internal (__const char *__assertion, unsigned int __line, __const char *__function) __attribute__ ((__noreturn__)) attribute_hidden; +#if defined SHARED && !defined NOT_IN_libc +# define __assert_fail __assert_fail_internal +#endif diff --git a/locale/Makefile b/locale/Makefile index 7a773f1..3b3af99 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -99,6 +99,17 @@ CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts CFLAGS-charmap-dir.c = -Wno-write-strings +CPPFLAGS-localedef = -DNOT_IN_libc +CPPFLAGS-ld-ctype = -DNOT_IN_libc +CPPFLAGS-ld-time = -DNOT_IN_libc +CPPFLAGS-ld-numeric = -DNOT_IN_libc +CPPFLAGS-ld-monetary = -DNOT_IN_libc +CPPFLAGS-ld-collate = -DNOT_IN_libc +CPPFLAGS-ld-identification = -DNOT_IN_libc +CPPFLAGS-charmap = -DNOT_IN_libc +CPPFLAGS-locarchive = -DNOT_IN_libc +CPPFLAGS-linereader = -DNOT_IN_libc + # Depend on libc.so so a DT_NEEDED is generated in the shared objects. # This ensures they will load libc.so for needed symbols if loaded by # a statically-linked program that hasn't already loaded it. diff --git a/nscd/Makefile b/nscd/Makefile index 0b11c71..a3cbe7c 100644 --- a/nscd/Makefile +++ b/nscd/Makefile @@ -53,6 +53,9 @@ distribute := nscd.h nscd-client.h dbg_log.h \ include ../Rules +CPPFLAGS-connections = -DNOT_IN_libc +CPPFLAGS-hstcache = -DNOT_IN_libc + $(objpfx)nscd: $(nscd-modules:%=$(objpfx)%.o) $(objpfx)nscd_nischeck: $(objpfx)nscd_nischeck.o diff --git a/sysdeps/unix/sysv/linux/adjtime.c b/sysdeps/unix/sysv/linux/adjtime.c index 2066d3f..62008f6 100644 --- a/sysdeps/unix/sysv/linux/adjtime.c +++ b/sysdeps/unix/sysv/linux/adjtime.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 1998, 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 @@ -42,7 +42,8 @@ #ifndef ADJTIMEX #define NO_LOCAL_ADJTIME -#define ADJTIMEX(x) __adjtimex (x) +#define ADJTIMEX(x) INTUSE(__adjtimex) (x) +extern int INTUSE(__adjtimex) (struct timex *__ntx); #endif #ifndef LINKAGE diff --git a/sysdeps/unix/sysv/linux/ntp_gettime.c b/sysdeps/unix/sysv/linux/ntp_gettime.c index 2bcabbc..f78f168 100644 --- a/sysdeps/unix/sysv/linux/ntp_gettime.c +++ b/sysdeps/unix/sysv/linux/ntp_gettime.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999 Free Software Foundation, Inc. +/* Copyright (C) 1999, 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 @@ -22,6 +22,10 @@ # define modes mode #endif + +extern int INTUSE(__adjtimex) (struct timex *__ntx); + + int ntp_gettime (ntv) struct ntptimeval *ntv; @@ -30,7 +34,7 @@ ntp_gettime (ntv) int result; tntx.modes = 0; - result = __adjtimex (&tntx); + result = INTUSE(__adjtimex) (&tntx); ntv->time = tntx.time; ntv->maxerror = tntx.maxerror; ntv->esterror = tntx.esterror; diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index c503bbb..efec79d 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -1,6 +1,6 @@ # File name Caller Syscall name Args Strong name Weak names -adjtimex adjtime adjtimex i:p __adjtimex adjtimex ntp_adjtime +adjtimex adjtime adjtimex i:p __adjtimex adjtimex ntp_adjtime __adjtimex_internal bdflush EXTRA bdflush i:ii bdflush capget EXTRA capget i:pp capget capset EXTRA capset i:pp capset diff --git a/sysdeps/wordsize-32/divdi3.c b/sysdeps/wordsize-32/divdi3.c index b8a8aee..8ca9fe4 100644 --- a/sysdeps/wordsize-32/divdi3.c +++ b/sysdeps/wordsize-32/divdi3.c @@ -294,6 +294,7 @@ __divdi3 (DWtype u, DWtype v) w = -w; return w; } +INTDEF(__divdi3) DWtype __moddi3 (DWtype u, DWtype v) diff --git a/sysdeps/wordsize-32/lldiv.c b/sysdeps/wordsize-32/lldiv.c index b097adc..2da982c 100644 --- a/sysdeps/wordsize-32/lldiv.c +++ b/sysdeps/wordsize-32/lldiv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 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 @@ -21,6 +21,13 @@ #include +#ifdef SHARED +/* This is an ugly trick. We cause the C code generated for the code + in lldiv.c to use __divdi3_internal instead of __divdi3 by defining + an alias on the assembler level. */ +asm ("__divdi3 = __divdi3_internal"); +#endif + #include #undef imaxdiv -- 2.7.4