mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-24 11:41:07 +00:00
Update.
1998-05-15 14:36 Ulrich Drepper <drepper@cygnus.com> * posix/wordexp-test.c: Avoid duplicate messages. * sysdeps/generic/setenv.c: Use __tfind and __tsearch, not tfind and tsearch. Correctly interpret values returned by those functions. (unsetenv): Store pointer to string, not pointer to string pointer. * time/tzfile.c (__tzfile_compute): Take new arguments. Store DST information and offset in them. * time/tzset.c (__tz_convert): Pass extra parameters to __tzfile_compute. Compute equivalent values for use of tz_rules. 1998-05-15 00:49:11 Zack Weinberg <zack@rabi.phys.columbia.edu> * iconvdata/Makefile (gen-8bit-table): Use move-if-change and stamp files to avoid unnecessary recompilation. (gen-8bit-gap-table): Likewise. (move-if-change): New variable. (all generated .h rules): Change to be .stmp rules. (%.h): New rule; depend on %.stmp; no commands. (distribute): Add gen-8bit.sh, gen-8bit-gap.sh, gen-8bit-gap-1.sh. 1998-05-15 01:09 Zack Weinberg <zack@rabi.phys.columbia.edu> * Makerules (libc-map): Deleted. (load-map-file): Set to the appropriate compiler switch, not just the file name. If libfoo-map is not set, look for a libfoo.map in the current directory and $(..). (map-file): New variable, contains just the mapfile name. (build-shlib): Adjust for new value of load-map-file. (libc.so): Correct dependencies. * extra-lib.mk: Correct shlib dependencies since libfoo-map may not be set anymore. * elf/Makefile: Set ld-map to $(..)libc.map, not $(libc-map). Delete libdl-map. Tweak ld.so link rule to work with changed variable settings in Makerules. * iconvdata/Makefile: Tweak build-module to work with changed variable settings in Makerules. * db/Makefile: Delete libdb-map. * hesiod/Makefile: Delete libnss_hesiod-map. * linuxthreads/Makefile: Delete libpthread-map. * locale/Makefile: Delete libBrokenLocale-map. * login/Makefile: Delete libutil-map. * math/Makefile: Delete libm-map. * md5-crypt/Makefile: Delete libcrypt-map. * nis/Makefile: Delete libnsl-map, libnss_nis-map, libnss_nisplus-map, and libnss_compat-map. * nss/Makefile: Delete libnss_files-map, libnss_db-map, and libnss_ldap-map. * resolv/Makefile: Delete libresolv-map and libnss_dns-map. * rt/Makefile: Delete librt-map. 1998-05-15 01:06 Zack Weinberg <zack@rabi.phys.columbia.edu> * configure.in: Instead of substituting `yes' or `no' for whether --no-whole-archive is available, set @no_whole_archive@ to the appropriate gcc switch or the empty string. Likewise for -fno-exceptions. * config.make.in: Replace have-no-whole-archive with no-whole-archive and have-no-exceptions with no-exceptions. * Makerules: Delete stanzas setting no-whole-archive and no-exceptions. * sunrpc/Makefile: Use move-if-change to update generated .h and .c files. 1998-05-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * wcsmbs/wcsmbsload.c (extract_charset_name): Use strcspn instead of strchr loop. 1998-05-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * time/tzfile.c (__tzfile_read): Remove unused variable info. (__tzfile_compute): Likewise. 1998-05-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/bits/socket.h (AF_SNA,PF_SNA): Add new defines from Linux 2.1.102.
This commit is contained in:
parent
0f488414e0
commit
b17277cfa2
86
ChangeLog
86
ChangeLog
@ -1,3 +1,89 @@
|
||||
1998-05-15 14:36 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* posix/wordexp-test.c: Avoid duplicate messages.
|
||||
|
||||
* sysdeps/generic/setenv.c: Use __tfind and __tsearch, not tfind and
|
||||
tsearch. Correctly interpret values returned by those functions.
|
||||
(unsetenv): Store pointer to string, not pointer to string pointer.
|
||||
|
||||
* time/tzfile.c (__tzfile_compute): Take new arguments. Store
|
||||
DST information and offset in them.
|
||||
* time/tzset.c (__tz_convert): Pass extra parameters to
|
||||
__tzfile_compute. Compute equivalent values for use of tz_rules.
|
||||
|
||||
1998-05-15 00:49:11 Zack Weinberg <zack@rabi.phys.columbia.edu>
|
||||
|
||||
* iconvdata/Makefile (gen-8bit-table): Use move-if-change and
|
||||
stamp files to avoid unnecessary recompilation.
|
||||
(gen-8bit-gap-table): Likewise.
|
||||
(move-if-change): New variable.
|
||||
(all generated .h rules): Change to be .stmp rules.
|
||||
(%.h): New rule; depend on %.stmp; no commands.
|
||||
(distribute): Add gen-8bit.sh, gen-8bit-gap.sh,
|
||||
gen-8bit-gap-1.sh.
|
||||
|
||||
1998-05-15 01:09 Zack Weinberg <zack@rabi.phys.columbia.edu>
|
||||
|
||||
* Makerules (libc-map): Deleted.
|
||||
(load-map-file): Set to the appropriate compiler switch, not
|
||||
just the file name. If libfoo-map is not set, look for a
|
||||
libfoo.map in the current directory and $(..).
|
||||
(map-file): New variable, contains just the mapfile name.
|
||||
(build-shlib): Adjust for new value of load-map-file.
|
||||
(libc.so): Correct dependencies.
|
||||
|
||||
* extra-lib.mk: Correct shlib dependencies since libfoo-map
|
||||
may not be set anymore.
|
||||
|
||||
* elf/Makefile: Set ld-map to $(..)libc.map, not $(libc-map).
|
||||
Delete libdl-map. Tweak ld.so link rule to work with changed
|
||||
variable settings in Makerules.
|
||||
* iconvdata/Makefile: Tweak build-module to work with changed
|
||||
variable settings in Makerules.
|
||||
|
||||
* db/Makefile: Delete libdb-map.
|
||||
* hesiod/Makefile: Delete libnss_hesiod-map.
|
||||
* linuxthreads/Makefile: Delete libpthread-map.
|
||||
* locale/Makefile: Delete libBrokenLocale-map.
|
||||
* login/Makefile: Delete libutil-map.
|
||||
* math/Makefile: Delete libm-map.
|
||||
* md5-crypt/Makefile: Delete libcrypt-map.
|
||||
* nis/Makefile: Delete libnsl-map, libnss_nis-map,
|
||||
libnss_nisplus-map, and libnss_compat-map.
|
||||
* nss/Makefile: Delete libnss_files-map, libnss_db-map, and
|
||||
libnss_ldap-map.
|
||||
* resolv/Makefile: Delete libresolv-map and libnss_dns-map.
|
||||
* rt/Makefile: Delete librt-map.
|
||||
|
||||
1998-05-15 01:06 Zack Weinberg <zack@rabi.phys.columbia.edu>
|
||||
|
||||
* configure.in: Instead of substituting `yes' or `no' for whether
|
||||
--no-whole-archive is available, set @no_whole_archive@ to the
|
||||
appropriate gcc switch or the empty string. Likewise for
|
||||
-fno-exceptions.
|
||||
* config.make.in: Replace have-no-whole-archive with
|
||||
no-whole-archive and have-no-exceptions with no-exceptions.
|
||||
* Makerules: Delete stanzas setting no-whole-archive and
|
||||
no-exceptions.
|
||||
|
||||
* sunrpc/Makefile: Use move-if-change to update generated .h
|
||||
and .c files.
|
||||
|
||||
1998-05-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||
|
||||
* wcsmbs/wcsmbsload.c (extract_charset_name): Use strcspn instead
|
||||
of strchr loop.
|
||||
|
||||
1998-05-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* time/tzfile.c (__tzfile_read): Remove unused variable info.
|
||||
(__tzfile_compute): Likewise.
|
||||
|
||||
1998-05-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/bits/socket.h (AF_SNA,PF_SNA): Add new
|
||||
defines from Linux 2.1.102.
|
||||
|
||||
1998-05-14 23:14 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* locale/programs/ld-ctype.c: Write correct mb_cur_max value.
|
||||
|
29
Makerules
29
Makerules
@ -325,9 +325,9 @@ ifeq (yes,$(build-shared))
|
||||
# Reference map file only when versioning is selected and a map file name
|
||||
# is given.
|
||||
ifeq ($(versioning),yes)
|
||||
load-map-file = $($(@F:%.so=%)-map)
|
||||
else
|
||||
load-map-file =
|
||||
map-file = $(firstword $(wildcard \
|
||||
$($(@F:.so=-map)) $(@F:.so=.map) $(..)$(@F:.so=.map)))
|
||||
load-map-file = $(map-file:%=-Wl,--version-script=%)
|
||||
endif
|
||||
|
||||
# Pattern rule to build a shared object from an archive of PIC objects.
|
||||
@ -338,12 +338,6 @@ endif
|
||||
lib%.so: lib%_pic.a $(+preinit) $(+postinit)
|
||||
$(build-shlib)
|
||||
|
||||
ifeq ($(have-no-whole-archive),yes)
|
||||
no-whole-archive = -Wl,--no-whole-archive
|
||||
else
|
||||
no-whole-archive =
|
||||
endif
|
||||
|
||||
ifeq ($(elf),yes)
|
||||
interp-obj = $(common-objpfx)elf/interp.os
|
||||
$(common-objpfx)libc.so: $(interp-obj)
|
||||
@ -352,12 +346,12 @@ endif
|
||||
|
||||
define build-shlib
|
||||
$(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \
|
||||
-B$(csu-objpfx) $(load-map-file:%=-Wl,--version-script=%) \
|
||||
-B$(csu-objpfx) $(load-map-file) \
|
||||
-Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \
|
||||
$(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \
|
||||
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \
|
||||
-Wl,--whole-archive \
|
||||
$(filter-out $($(@F:.so=)-map) $(+preinit) $(+postinit),$^) \
|
||||
$(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
|
||||
$(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so)
|
||||
endef
|
||||
|
||||
@ -385,8 +379,6 @@ LDFLAGS-c.so = -nostdlib -nostartfiles
|
||||
LDLIBS-c.so = $(gnulib)
|
||||
# Give libc.so an entry point and make it directly runnable itself.
|
||||
LDFLAGS-c.so += -e __libc_main
|
||||
# We have a versioning file for libc.so.
|
||||
libc-map = $(..)libc.map
|
||||
# Pre-link the objects of libc_pic.a so that we can locally resolve
|
||||
# COMMON symbols before we link against ld.so. This is because ld.so
|
||||
# contains some of libc_pic.a already, which will prevent the COMMONs
|
||||
@ -399,7 +391,7 @@ $(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
|
||||
$(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
|
||||
$(common-objpfx)libc_pic.os \
|
||||
$(elfobjdir)/sofini.os $(elfobjdir)/ld.so \
|
||||
$(libc-map)
|
||||
$(..)libc.map
|
||||
$(build-shlib)
|
||||
common-generated += libc.so libc_pic.os
|
||||
ifdef libc.so-version
|
||||
@ -409,15 +401,6 @@ common-generated += libc.so$(libc.so-version)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Some files must not be compiled with the exception handler mechanism
|
||||
# enabled (introduced in gcc-2.8). Use $(no-exceptions) in the
|
||||
# appropriate CFLAGS definition.
|
||||
ifeq ($(have-no-exceptions),yes)
|
||||
no-exceptions = -fno-exceptions
|
||||
else
|
||||
no-exceptions =
|
||||
endif
|
||||
|
||||
# Figure out the source filenames in this directory.
|
||||
|
||||
override sources := $(addsuffix .c,$(filter-out $(elided-routines),\
|
||||
|
@ -37,9 +37,9 @@ need-nopic-initfini = @nopic_initfini@
|
||||
with-cvs = @with_cvs@
|
||||
|
||||
versioning = @VERSIONING@
|
||||
no-whole-archive = @no_whole_archive@
|
||||
no-exceptions = @no_exceptions@
|
||||
|
||||
have-no-whole-archive = @libc_cv_ld_no_whole_archive@
|
||||
have-no-exceptions = @libc_cv_gcc_no_exceptions@
|
||||
have-bash2 = @libc_cv_have_bash2@
|
||||
have-ksh = @libc_cv_have_ksh@
|
||||
|
||||
|
42
configure
vendored
42
configure
vendored
@ -2523,9 +2523,12 @@ rm -f conftest*
|
||||
fi
|
||||
|
||||
echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6
|
||||
if test $libc_cv_ld_no_whole_archive = yes; then
|
||||
no_whole_archive=-Wl,--no-whole-archive
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for gcc -fno-exceptions""... $ac_c" 1>&6
|
||||
echo "configure:2529: checking for gcc -fno-exceptions" >&5
|
||||
echo "configure:2532: checking for gcc -fno-exceptions" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_no_exceptions'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -2536,7 +2539,7 @@ __throw () {}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS
|
||||
-nostdlib -nostartfiles -fno-exceptions
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_gcc_no_exceptions=yes
|
||||
else
|
||||
libc_cv_gcc_no_exceptions=no
|
||||
@ -2545,17 +2548,20 @@ rm -f conftest*
|
||||
fi
|
||||
|
||||
echo "$ac_t""$libc_cv_gcc_no_exceptions" 1>&6
|
||||
if test $libc_cv_ld_no_whole_archive = yes; then
|
||||
no_exceptions=-fno-exceptions
|
||||
fi
|
||||
|
||||
if test "$base_machine" = alpha ; then
|
||||
echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6
|
||||
echo "configure:2552: checking for function ..ng prefix" >&5
|
||||
echo "configure:2558: checking for function ..ng prefix" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.c <<\EOF
|
||||
foo () { }
|
||||
EOF
|
||||
if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2559: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
|
||||
if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2565: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
|
||||
then
|
||||
libc_cv_gcc_alpha_ng_prefix=yes
|
||||
else
|
||||
@ -2582,19 +2588,19 @@ if test "$host_cpu" = powerpc ; then
|
||||
# Check for a bug present in at least versions 2.8.x of GCC
|
||||
# and versions 1.0.x of EGCS.
|
||||
echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6
|
||||
echo "configure:2586: checking whether clobbering cr0 causes problems" >&5
|
||||
echo "configure:2592: checking whether clobbering cr0 causes problems" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 2591 "configure"
|
||||
#line 2597 "configure"
|
||||
#include "confdefs.h"
|
||||
int tester(int x) { asm ("" : : : "cc"); return x & 123; }
|
||||
int main() {
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:2598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:2604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
libc_cv_c_asmcr0_bug='no'
|
||||
else
|
||||
@ -2616,12 +2622,12 @@ fi
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6
|
||||
echo "configure:2620: checking for DWARF2 unwind info support" >&5
|
||||
echo "configure:2626: checking for DWARF2 unwind info support" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.c <<EOF
|
||||
#line 2625 "configure"
|
||||
#line 2631 "configure"
|
||||
static char __EH_FRAME_BEGIN__;
|
||||
_start ()
|
||||
{
|
||||
@ -2648,7 +2654,7 @@ __bzero () {}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info
|
||||
-nostdlib -nostartfiles
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2652: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2658: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_gcc_dwarf2_unwind_info=static
|
||||
else
|
||||
libc_cv_gcc_dwarf2_unwind_info=no
|
||||
@ -2656,7 +2662,7 @@ fi
|
||||
if test $libc_cv_gcc_dwarf2_unwind_info = no; then
|
||||
if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame
|
||||
-nostdlib -nostartfiles
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2666: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_gcc_dwarf2_unwind_info=yes
|
||||
else
|
||||
libc_cv_gcc_dwarf2_unwind_info=no
|
||||
@ -2730,7 +2736,7 @@ if test "$uname" = "sysdeps/generic"; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
|
||||
echo "configure:2734: checking OS release for uname" >&5
|
||||
echo "configure:2740: checking OS release for uname" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -2752,7 +2758,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6
|
||||
uname_release="$libc_cv_uname_release"
|
||||
|
||||
echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
|
||||
echo "configure:2756: checking OS version for uname" >&5
|
||||
echo "configure:2762: checking OS version for uname" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -2774,7 +2780,7 @@ else
|
||||
fi
|
||||
|
||||
echo $ac_n "checking stdio selection""... $ac_c" 1>&6
|
||||
echo "configure:2778: checking stdio selection" >&5
|
||||
echo "configure:2784: checking stdio selection" >&5
|
||||
|
||||
case $stdio in
|
||||
libio) cat >> confdefs.h <<\EOF
|
||||
@ -2786,7 +2792,7 @@ esac
|
||||
echo "$ac_t""$stdio" 1>&6
|
||||
|
||||
echo $ac_n "checking ldap selection""... $ac_c" 1>&6
|
||||
echo "configure:2790: checking ldap selection" >&5
|
||||
echo "configure:2796: checking ldap selection" >&5
|
||||
|
||||
case $add_ons in
|
||||
*ldap*)
|
||||
@ -2837,7 +2843,7 @@ if test $shared = default; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6
|
||||
echo "configure:2841: checking whether -fPIC is default" >&5
|
||||
echo "configure:2847: checking whether -fPIC is default" >&5
|
||||
if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -3044,8 +3050,8 @@ s%@AWK@%$AWK%g
|
||||
s%@PERL@%$PERL%g
|
||||
s%@VERSIONING@%$VERSIONING%g
|
||||
s%@libc_cv_have_initfini@%$libc_cv_have_initfini%g
|
||||
s%@libc_cv_ld_no_whole_archive@%$libc_cv_ld_no_whole_archive%g
|
||||
s%@libc_cv_gcc_no_exceptions@%$libc_cv_gcc_no_exceptions%g
|
||||
s%@no_whole_archive@%$no_whole_archive%g
|
||||
s%@no_exceptions@%$no_exceptions%g
|
||||
s%@uname_sysname@%$uname_sysname%g
|
||||
s%@uname_release@%$uname_release%g
|
||||
s%@uname_version@%$uname_version%g
|
||||
|
10
configure.in
10
configure.in
@ -883,7 +883,10 @@ else
|
||||
libc_cv_ld_no_whole_archive=no
|
||||
fi
|
||||
rm -f conftest*])
|
||||
AC_SUBST(libc_cv_ld_no_whole_archive)dnl
|
||||
if test $libc_cv_ld_no_whole_archive = yes; then
|
||||
no_whole_archive=-Wl,--no-whole-archive
|
||||
fi
|
||||
AC_SUBST(no_whole_archive)dnl
|
||||
|
||||
AC_CACHE_CHECK(for gcc -fno-exceptions, libc_cv_gcc_no_exceptions, [dnl
|
||||
cat > conftest.c <<\EOF
|
||||
@ -900,7 +903,10 @@ else
|
||||
libc_cv_gcc_no_exceptions=no
|
||||
fi
|
||||
rm -f conftest*])
|
||||
AC_SUBST(libc_cv_gcc_no_exceptions)dnl
|
||||
if test $libc_cv_ld_no_whole_archive = yes; then
|
||||
no_exceptions=-fno-exceptions
|
||||
fi
|
||||
AC_SUBST(no_exceptions)dnl
|
||||
|
||||
if test "$base_machine" = alpha ; then
|
||||
AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
|
||||
|
@ -19,7 +19,6 @@ libdb-routines := bt_close bt_conv bt_debug bt_delete bt_get \
|
||||
mpool \
|
||||
rec_close rec_delete rec_get rec_open rec_put rec_search \
|
||||
rec_seq rec_utils
|
||||
libdb-map := libdb.map
|
||||
|
||||
headers := db.h mpool.h ndbm.h
|
||||
distribute := compat.h \
|
||||
|
15
elf/Makefile
15
elf/Makefile
@ -35,7 +35,7 @@ elide-routines.os = $(dl-routines) dl-support enbl-secure
|
||||
# ld.so uses those routines, plus some special stuff for being the program
|
||||
# interpreter and operating independent of libc.
|
||||
rtld-routines := rtld $(dl-routines) dl-sysdep dl-minimal
|
||||
ld-map = $(libc-map)
|
||||
ld-map = $(..)libc.map
|
||||
distribute = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
|
||||
dl-hash.h soinit.c sofini.c ldd.sh.in ldd.bash.in eval.c \
|
||||
genrtldtbl.awk atomicity.h dl-procinfo.h ldsodefs.h \
|
||||
@ -44,7 +44,6 @@ distribute = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
|
||||
extra-libs = libdl
|
||||
extra-libs-others = $(extra-libs)
|
||||
libdl-routines := dlopen dlclose dlsym dlvsym dlerror dladdr
|
||||
libdl-map := libdl.map
|
||||
|
||||
before-compile = $(objpfx)trusted-dirs.h $(objpfx)rtldtbl.h
|
||||
|
||||
@ -112,14 +111,10 @@ endif
|
||||
|
||||
$(objpfx)ld.so: $(objpfx)librtld.os $(addprefix $(objpfx),$(rtld-ldscript)) \
|
||||
$(ld-map)
|
||||
$(rtld-link) -Wl,-soname=$(rtld-installed-name)
|
||||
|
||||
define rtld-link
|
||||
$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
|
||||
-Wl,-rpath=$(default-rpath) $(LDFLAGS-rtld) \
|
||||
$(filter-out $(rtld-ldscript) $($(@F:.so=)-map),$^) \
|
||||
$(load-map-file:%=-Wl,--version-script=%)
|
||||
endef
|
||||
$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
|
||||
-Wl,-rpath=$(default-rpath) $(LDFLAGS-rtld) \
|
||||
$(filter-out $(rtld-ldscript) $(map-file),$^) \
|
||||
$(load-map-file) -Wl,-soname=$(rtld-installed-name)
|
||||
|
||||
# The dl code in the static libc needs a default library path.
|
||||
CFLAGS-dl-support.c = -D'DEFAULT_RPATH="$(default-rpath)"'
|
||||
|
@ -50,6 +50,6 @@ object-suffixes-left = $(object-suffixes-$(lib))
|
||||
include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-$(lib)))
|
||||
|
||||
# Add the version script to the dependencies of the shared library.
|
||||
$(objpfx)$(lib).so: $($(lib)-map)
|
||||
$(objpfx)$(lib).so: $(firstword $(wildcard $($(lib)-map) $(lib).map $(..)$(lib).map))
|
||||
|
||||
endif
|
||||
|
@ -30,7 +30,6 @@ subdir-dirs = nss_hesiod
|
||||
vpath %.c nss_hesiod
|
||||
|
||||
libnss_hesiod-routines := hesiod hesiod-grp hesiod-pwd hesiod-service
|
||||
libnss_hesiod-map := libnss_hesiod.map
|
||||
# Build only shared library
|
||||
libnss_hesiod-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
|
||||
|
@ -195,7 +195,8 @@ distribute := 8bit-generic.c 8bit-gap.c gap.pl gaptab.pl gconv-modules \
|
||||
ibm880.c ibm891.c ibm903.c ibm904.c ibm905.c ibm918.c \
|
||||
ibm1004.c ibm1026.c ibm1047.c cp1250.c cp1251.c cp1252.c \
|
||||
cp1253.c cp1254.c cp1255.c cp1256.c cp1257.c cp874.c cp874.h \
|
||||
cp737.c cp737.h cp775.c cp775.h iso-2022-jp.c iso-2022-kr.c
|
||||
cp737.c cp737.h cp775.c cp775.h iso-2022-jp.c iso-2022-kr.c \
|
||||
gen-8bit.sh gen-8bit-gap.sh gen-8bit-gap-1.sh
|
||||
|
||||
# We build the transformation modules only when we build shared libs.
|
||||
ifeq (yes,$(build-shared))
|
||||
@ -204,11 +205,11 @@ ifeq (yes,$(build-shared))
|
||||
# and it does not depend on the destination name to start with `lib'.
|
||||
define build-module
|
||||
$(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \
|
||||
-B$(csu-objpfx) $(load-map-file:%=-Wl,--version-script=%) \
|
||||
-B$(csu-objpfx) $(load-map-file) \
|
||||
$(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
|
||||
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \
|
||||
-Wl,--whole-archive \
|
||||
$(filter-out $($(@F:.so=)-map) $(+preinit) $(+postinit),$^) \
|
||||
$(filter-out $(map-file) $(+preinit) $(+postinit),$^) \
|
||||
$(no-whole-archive) $(LDLIBS-$(@F:%.so=%).so)
|
||||
endef
|
||||
|
||||
@ -223,11 +224,13 @@ install-others = $(addprefix $(inst_gconvdir)/, $(modules.so)) \
|
||||
|
||||
# If we have the localedata add-on available we can build the conversion
|
||||
# tables for numerous charsets.
|
||||
move-if-change = ./$(..)scripts/move-if-change
|
||||
|
||||
define generate-8bit-table
|
||||
$(make-target-directory)
|
||||
rm -f $@.new
|
||||
$(SHELL) ./gen-8bit.sh $< > $@.new
|
||||
mv -f $@.new $@
|
||||
$(SHELL) ./gen-8bit.sh $< > $(@:stmp=T)
|
||||
$(move-if-change) $(@:stmp=T) $(@:stmp=h)
|
||||
touch $@
|
||||
endef
|
||||
|
||||
sed-generated-headers := iso8859-2.h iso8859-3.h iso8859-4.h iso8859-6.h \
|
||||
@ -243,9 +246,9 @@ sed-generated-headers := iso8859-2.h iso8859-3.h iso8859-4.h iso8859-6.h \
|
||||
|
||||
define generate-8bit-gap-table
|
||||
$(make-target-directory)
|
||||
rm -f $@.new
|
||||
PERL="$(PERL)" $(SHELL) ./gen-8bit-gap.sh $< > $@.new
|
||||
mv -f $@.new $@
|
||||
PERL="$(PERL)" $(SHELL) ./gen-8bit-gap.sh $< > $(@:stmp=T)
|
||||
$(move-if-change) $(@:stmp=T) $(@:stmp=h)
|
||||
touch $@
|
||||
endef
|
||||
|
||||
perl-generated-headers := koi8-r.h latin-greek.h latin-greek-1.h \
|
||||
@ -271,184 +274,190 @@ ifneq ($(PERL),no)
|
||||
before-compile += $(addprefix $(objpfx),$(perl-generated-headers))
|
||||
endif
|
||||
|
||||
|
||||
# Rules to generate the headers.
|
||||
$(objpfx)iso8859-2.h: ../localedata/charmaps/ISO-8859-2 gen-8bit.sh
|
||||
$(sed-generated-headers:%=$(objpfx)%): $(objpfx)%.h: $(objpfx)%.stmp
|
||||
@:
|
||||
|
||||
$(objpfx)iso8859-2.stmp: ../localedata/charmaps/ISO-8859-2 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)iso8859-3.h: ../localedata/charmaps/ISO-8859-3 gen-8bit.sh
|
||||
$(objpfx)iso8859-3.stmp: ../localedata/charmaps/ISO-8859-3 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)iso8859-4.h: ../localedata/charmaps/ISO-8859-4 gen-8bit.sh
|
||||
$(objpfx)iso8859-4.stmp: ../localedata/charmaps/ISO-8859-4 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)iso8859-6.h: ../localedata/charmaps/ISO-8859-6 gen-8bit.sh
|
||||
$(objpfx)iso8859-6.stmp: ../localedata/charmaps/ISO-8859-6 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)iso8859-9.h: ../localedata/charmaps/ISO-8859-9 gen-8bit.sh
|
||||
$(objpfx)iso8859-9.stmp: ../localedata/charmaps/ISO-8859-9 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
|
||||
$(objpfx)koi-8.h: ../localedata/charmaps/KOI-8 gen-8bit.sh
|
||||
$(objpfx)koi-8.stmp: ../localedata/charmaps/KOI-8 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)hp-roman8.stmp: ../localedata/charmaps/HP-ROMAN8 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
|
||||
$(objpfx)hp-roman8.h: ../localedata/charmaps/HP-ROMAN8 gen-8bit.sh
|
||||
$(objpfx)ebcdic-at-de.stmp: ../localedata/charmaps/EBCDIC-AT-DE gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-at-de-a.stmp: ../localedata/charmaps/EBCDIC-AT-DE-A gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-ca-fr.stmp: ../localedata/charmaps/EBCDIC-CA-FR gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-dk-no.stmp: ../localedata/charmaps/EBCDIC-DK-NO gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-dk-no-a.stmp: ../localedata/charmaps/EBCDIC-DK-NO-A gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-es.stmp: ../localedata/charmaps/EBCDIC-ES gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-es-a.stmp: ../localedata/charmaps/EBCDIC-ES-A gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-es-s.stmp: ../localedata/charmaps/EBCDIC-ES-S gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-fi-se.stmp: ../localedata/charmaps/EBCDIC-FI-SE gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-fi-se-a.stmp: ../localedata/charmaps/EBCDIC-FI-SE-A gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-fr.stmp: ../localedata/charmaps/EBCDIC-FR gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-is-friss.stmp: ../localedata/charmaps/EBCDIC-IS-FRISS gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-it.stmp: ../localedata/charmaps/EBCDIC-IT gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-pt.stmp: ../localedata/charmaps/EBCDIC-PT gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-uk.stmp: ../localedata/charmaps/EBCDIC-UK gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-us.stmp: ../localedata/charmaps/EBCDIC-US gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
|
||||
$(objpfx)ebcdic-at-de.h: ../localedata/charmaps/EBCDIC-AT-DE gen-8bit.sh
|
||||
$(objpfx)ibm037.stmp: ../localedata/charmaps/IBM037 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-at-de-a.h: ../localedata/charmaps/EBCDIC-AT-DE-A gen-8bit.sh
|
||||
$(objpfx)ibm038.stmp: ../localedata/charmaps/IBM038 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-ca-fr.h: ../localedata/charmaps/EBCDIC-CA-FR gen-8bit.sh
|
||||
$(objpfx)ibm274.stmp: ../localedata/charmaps/IBM274 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-dk-no.h: ../localedata/charmaps/EBCDIC-DK-NO gen-8bit.sh
|
||||
$(objpfx)ibm275.stmp: ../localedata/charmaps/IBM275 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-dk-no-a.h: ../localedata/charmaps/EBCDIC-DK-NO-A gen-8bit.sh
|
||||
$(objpfx)ibm423.stmp: ../localedata/charmaps/IBM423 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-es.h: ../localedata/charmaps/EBCDIC-ES gen-8bit.sh
|
||||
$(objpfx)ibm500.stmp: ../localedata/charmaps/IBM500 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-es-a.h: ../localedata/charmaps/EBCDIC-ES-A gen-8bit.sh
|
||||
$(objpfx)ibm870.stmp: ../localedata/charmaps/IBM870 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-es-s.h: ../localedata/charmaps/EBCDIC-ES-S gen-8bit.sh
|
||||
$(objpfx)ibm871.stmp: ../localedata/charmaps/IBM871 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-fi-se.h: ../localedata/charmaps/EBCDIC-FI-SE gen-8bit.sh
|
||||
$(objpfx)ibm891.stmp: ../localedata/charmaps/IBM891 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-fi-se-a.h: ../localedata/charmaps/EBCDIC-FI-SE-A gen-8bit.sh
|
||||
$(objpfx)ibm903.stmp: ../localedata/charmaps/IBM903 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-fr.h: ../localedata/charmaps/EBCDIC-FR gen-8bit.sh
|
||||
$(objpfx)ibm904.stmp: ../localedata/charmaps/IBM904 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-is-friss.h: ../localedata/charmaps/EBCDIC-IS-FRISS gen-8bit.sh
|
||||
$(objpfx)ibm905.stmp: ../localedata/charmaps/IBM905 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-it.h: ../localedata/charmaps/EBCDIC-IT gen-8bit.sh
|
||||
$(objpfx)ibm1047.stmp: ../localedata/charmaps/IBM1047 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-pt.h: ../localedata/charmaps/EBCDIC-PT gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-uk.h: ../localedata/charmaps/EBCDIC-UK gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ebcdic-us.h: ../localedata/charmaps/EBCDIC-US gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm037.h: ../localedata/charmaps/IBM037 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm038.h: ../localedata/charmaps/IBM038 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm274.h: ../localedata/charmaps/IBM274 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm275.h: ../localedata/charmaps/IBM275 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm423.h: ../localedata/charmaps/IBM423 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm500.h: ../localedata/charmaps/IBM500 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm870.h: ../localedata/charmaps/IBM870 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm871.h: ../localedata/charmaps/IBM871 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm891.h: ../localedata/charmaps/IBM891 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm903.h: ../localedata/charmaps/IBM903 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm904.h: ../localedata/charmaps/IBM904 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm905.h: ../localedata/charmaps/IBM905 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
$(objpfx)ibm1047.h: ../localedata/charmaps/IBM1047 gen-8bit.sh
|
||||
$(generate-8bit-table)
|
||||
|
||||
|
||||
ifneq ($(PERL),no)
|
||||
$(objpfx)iso8859-7jp.h: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap-1.sh
|
||||
$(perl-generated-headers:%=$(objpfx)%): $(objpfx)%.h: $(objpfx)%.stmp
|
||||
@:
|
||||
|
||||
$(objpfx)iso8859-5.stmp: ../localedata/charmaps/ISO-8859-5 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)iso8859-7.stmp: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)iso8859-7jp.stmp: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap-1.sh
|
||||
$(make-target-directory)
|
||||
rm -f $@.new
|
||||
PERL="$(PERL)" $(SHELL) ./gen-8bit-gap-1.sh $< >$@.new
|
||||
mv -f $@.new $@
|
||||
PERL="$(PERL)" $(SHELL) ./gen-8bit-gap-1.sh $< >$(@:stmp=T)
|
||||
$(move-if-change) $(@:stmp=T) $(@:stmp=h)
|
||||
touch $@
|
||||
|
||||
$(objpfx)iso8859-5.h: ../localedata/charmaps/ISO-8859-5 gen-8bit-gap.sh
|
||||
$(objpfx)iso8859-8.stmp: ../localedata/charmaps/ISO-8859-8 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)iso8859-7.h: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)iso8859-8.h: ../localedata/charmaps/ISO-8859-8 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)iso8859-10.h: ../localedata/charmaps/ISO-8859-10 gen-8bit-gap.sh
|
||||
$(objpfx)iso8859-10.stmp: ../localedata/charmaps/ISO-8859-10 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
|
||||
$(objpfx)koi8-r.h: ../localedata/charmaps/KOI8-R gen-8bit-gap.sh
|
||||
$(objpfx)koi8-r.stmp: ../localedata/charmaps/KOI8-R gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)latin-greek.h: ../localedata/charmaps/LATIN-GREEK gen-8bit-gap.sh
|
||||
$(objpfx)latin-greek.stmp: ../localedata/charmaps/LATIN-GREEK gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)latin-greek-1.h: ../localedata/charmaps/LATIN-GREEK-1 gen-8bit-gap.sh
|
||||
$(objpfx)latin-greek-1.stmp: ../localedata/charmaps/LATIN-GREEK-1 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm256.h: ../localedata/charmaps/IBM256 gen-8bit-gap.sh
|
||||
|
||||
$(objpfx)ibm256.stmp: ../localedata/charmaps/IBM256 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm273.h: ../localedata/charmaps/IBM273 gen-8bit-gap.sh
|
||||
$(objpfx)ibm273.stmp: ../localedata/charmaps/IBM273 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm277.h: ../localedata/charmaps/IBM277 gen-8bit-gap.sh
|
||||
$(objpfx)ibm277.stmp: ../localedata/charmaps/IBM277 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm278.h: ../localedata/charmaps/IBM278 gen-8bit-gap.sh
|
||||
$(objpfx)ibm278.stmp: ../localedata/charmaps/IBM278 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm280.h: ../localedata/charmaps/IBM280 gen-8bit-gap.sh
|
||||
$(objpfx)ibm280.stmp: ../localedata/charmaps/IBM280 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm281.h: ../localedata/charmaps/IBM281 gen-8bit-gap.sh
|
||||
$(objpfx)ibm281.stmp: ../localedata/charmaps/IBM281 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm284.h: ../localedata/charmaps/IBM284 gen-8bit-gap.sh
|
||||
$(objpfx)ibm284.stmp: ../localedata/charmaps/IBM284 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm285.h: ../localedata/charmaps/IBM285 gen-8bit-gap.sh
|
||||
$(objpfx)ibm285.stmp: ../localedata/charmaps/IBM285 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm290.h: ../localedata/charmaps/IBM290 gen-8bit-gap.sh
|
||||
$(objpfx)ibm290.stmp: ../localedata/charmaps/IBM290 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm297.h: ../localedata/charmaps/IBM297 gen-8bit-gap.sh
|
||||
$(objpfx)ibm297.stmp: ../localedata/charmaps/IBM297 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm420.h: ../localedata/charmaps/IBM420 gen-8bit-gap.sh
|
||||
$(objpfx)ibm420.stmp: ../localedata/charmaps/IBM420 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm424.h: ../localedata/charmaps/IBM424 gen-8bit-gap.sh
|
||||
$(objpfx)ibm424.stmp: ../localedata/charmaps/IBM424 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm437.h: ../localedata/charmaps/IBM437 gen-8bit-gap.sh
|
||||
$(objpfx)ibm437.stmp: ../localedata/charmaps/IBM437 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm850.h: ../localedata/charmaps/IBM850 gen-8bit-gap.sh
|
||||
$(objpfx)ibm850.stmp: ../localedata/charmaps/IBM850 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm851.h: ../localedata/charmaps/IBM851 gen-8bit-gap.sh
|
||||
$(objpfx)ibm851.stmp: ../localedata/charmaps/IBM851 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm852.h: ../localedata/charmaps/IBM852 gen-8bit-gap.sh
|
||||
$(objpfx)ibm852.stmp: ../localedata/charmaps/IBM852 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm855.h: ../localedata/charmaps/IBM855 gen-8bit-gap.sh
|
||||
$(objpfx)ibm855.stmp: ../localedata/charmaps/IBM855 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm857.h: ../localedata/charmaps/IBM857 gen-8bit-gap.sh
|
||||
$(objpfx)ibm857.stmp: ../localedata/charmaps/IBM857 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm860.h: ../localedata/charmaps/IBM860 gen-8bit-gap.sh
|
||||
$(objpfx)ibm860.stmp: ../localedata/charmaps/IBM860 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm861.h: ../localedata/charmaps/IBM861 gen-8bit-gap.sh
|
||||
$(objpfx)ibm861.stmp: ../localedata/charmaps/IBM861 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm862.h: ../localedata/charmaps/IBM862 gen-8bit-gap.sh
|
||||
$(objpfx)ibm862.stmp: ../localedata/charmaps/IBM862 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm863.h: ../localedata/charmaps/IBM863 gen-8bit-gap.sh
|
||||
$(objpfx)ibm863.stmp: ../localedata/charmaps/IBM863 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm864.h: ../localedata/charmaps/IBM864 gen-8bit-gap.sh
|
||||
$(objpfx)ibm864.stmp: ../localedata/charmaps/IBM864 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm865.h: ../localedata/charmaps/IBM865 gen-8bit-gap.sh
|
||||
$(objpfx)ibm865.stmp: ../localedata/charmaps/IBM865 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm868.h: ../localedata/charmaps/IBM868 gen-8bit-gap.sh
|
||||
$(objpfx)ibm868.stmp: ../localedata/charmaps/IBM868 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm869.h: ../localedata/charmaps/IBM869 gen-8bit-gap.sh
|
||||
$(objpfx)ibm869.stmp: ../localedata/charmaps/IBM869 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm875.h: ../localedata/charmaps/IBM875 gen-8bit-gap.sh
|
||||
$(objpfx)ibm875.stmp: ../localedata/charmaps/IBM875 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm880.h: ../localedata/charmaps/IBM880 gen-8bit-gap.sh
|
||||
$(objpfx)ibm880.stmp: ../localedata/charmaps/IBM880 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm918.h: ../localedata/charmaps/IBM918 gen-8bit-gap.sh
|
||||
$(objpfx)ibm918.stmp: ../localedata/charmaps/IBM918 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm1004.h: ../localedata/charmaps/IBM1004 gen-8bit-gap.sh
|
||||
$(objpfx)ibm1004.stmp: ../localedata/charmaps/IBM1004 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)ibm1026.h: ../localedata/charmaps/IBM1026 gen-8bit-gap.sh
|
||||
$(objpfx)ibm1026.stmp: ../localedata/charmaps/IBM1026 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)cp1250.h: ../localedata/charmaps/CP1250 gen-8bit-gap.sh
|
||||
|
||||
$(objpfx)cp1250.stmp: ../localedata/charmaps/CP1250 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)cp1251.h: ../localedata/charmaps/CP1251 gen-8bit-gap.sh
|
||||
$(objpfx)cp1251.stmp: ../localedata/charmaps/CP1251 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)cp1252.h: ../localedata/charmaps/CP1252 gen-8bit-gap.sh
|
||||
$(objpfx)cp1252.stmp: ../localedata/charmaps/CP1252 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)cp1253.h: ../localedata/charmaps/CP1253 gen-8bit-gap.sh
|
||||
$(objpfx)cp1253.stmp: ../localedata/charmaps/CP1253 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)cp1254.h: ../localedata/charmaps/CP1254 gen-8bit-gap.sh
|
||||
$(objpfx)cp1254.stmp: ../localedata/charmaps/CP1254 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)cp1255.h: ../localedata/charmaps/CP1255 gen-8bit-gap.sh
|
||||
$(objpfx)cp1255.stmp: ../localedata/charmaps/CP1255 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)cp1256.h: ../localedata/charmaps/CP1256 gen-8bit-gap.sh
|
||||
$(objpfx)cp1256.stmp: ../localedata/charmaps/CP1256 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
$(objpfx)cp1257.h: ../localedata/charmaps/CP1257 gen-8bit-gap.sh
|
||||
$(objpfx)cp1257.stmp: ../localedata/charmaps/CP1257 gen-8bit-gap.sh
|
||||
$(generate-8bit-gap-table)
|
||||
endif
|
||||
|
||||
|
@ -34,7 +34,6 @@ extra-libs-others := $(extra-libs)
|
||||
libpthread-routines := attr cancel condvar join manager mutex ptfork \
|
||||
ptlongjmp pthread signals specific errno lockfile \
|
||||
semaphore spinlock wrapsyscall rwlock
|
||||
libpthread-map := libpthread.map
|
||||
|
||||
include ../Rules
|
||||
|
||||
|
@ -46,7 +46,6 @@ extra-libs = libBrokenLocale
|
||||
extra-libs-others = $(extra-libs)
|
||||
|
||||
libBrokenLocale-routines = broken_cur_max
|
||||
libBrokenLocale-map = libBrokenLocale.map
|
||||
|
||||
subdir-dirs = programs
|
||||
vpath %.c programs
|
||||
|
@ -48,7 +48,6 @@ extra-libs := libutil
|
||||
extra-libs-others := $(extra-libs)
|
||||
|
||||
libutil-routines:= login login_tty logout logwtmp openpty forkpty
|
||||
libutil-map := libutil.map
|
||||
|
||||
include ../Rules
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
With the introduction of version 2 of the GNU C Library the format of
|
||||
the UTMP and WTMP files changed for some configurations (see Q&A 10 of
|
||||
the FAQ). This version of the GNU C Library contains a solution for
|
||||
the problems this may cause, by providing an UTMP daemon `utmpd'.
|
||||
the UTMP and WTMP files changed for some configurations (see Q&A `Why
|
||||
does getlogin() always return NULL on my Linux box?' of the FAQ).
|
||||
This version of the GNU C Library contains a solution for the problems
|
||||
this may cause, by providing an UTMP daemon `utmpd'.
|
||||
|
||||
Do I need it?
|
||||
=============
|
||||
|
@ -36,8 +36,6 @@ aux := fpu_control setfpucw
|
||||
extra-libs := libm
|
||||
extra-libs-others = $(extra-libs)
|
||||
|
||||
libm-map := libm.map
|
||||
|
||||
libm-support = k_standard s_lib_version s_matherr s_signgam \
|
||||
fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg \
|
||||
ftestexcept fegetround fesetround fegetenv feholdexcpt \
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996, 1997, 1998 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
|
||||
@ -32,7 +32,6 @@ extra-libs-others := $(extra-libs)
|
||||
|
||||
md5-routines := crypt-entry md5-crypt md5
|
||||
libcrypt-routines := $(md5-routines)
|
||||
libcrypt-map := libcrypt.map
|
||||
|
||||
onlymd5-routines := onlymd5-entry md5-crypt md5
|
||||
distribute += onlymd5-entry.c
|
||||
|
@ -57,15 +57,12 @@ libnsl-map = libnsl.map
|
||||
|
||||
libnss_compat-routines := $(addprefix compat-,grp pwd spwd) nisplus-parser
|
||||
libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
libnss_compat-map := libnss_compat.map
|
||||
|
||||
libnss_nis-routines := $(addprefix nis-,$(databases))
|
||||
libnss_nis-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
libnss_nis-map := libnss_nis.map
|
||||
|
||||
libnss_nisplus-routines := $(addprefix nisplus-,$(databases)) nisplus-parser
|
||||
libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
libnss_nisplus-map := libnss_nisplus.map
|
||||
|
||||
include ../Rules
|
||||
|
||||
|
@ -54,18 +54,15 @@ vpath %.c $(subdir-dirs)
|
||||
|
||||
|
||||
libnss_files-routines := $(addprefix files-,$(filter-out key, $(databases)))
|
||||
libnss_files-map := libnss_files.map
|
||||
distribute += files-XXX.c files-parse.c
|
||||
|
||||
libnss_db-routines := $(addprefix db-,$(filter-out hosts network key,\
|
||||
$(databases)))
|
||||
libnss_db-map := libnss_db.map
|
||||
generated += $(filter-out db-alias.c db-netgrp.c, \
|
||||
$(addsuffix .c,$(libnss_db-routines)))
|
||||
distribute += db-XXX.c
|
||||
|
||||
libnss_ldap-routines := $(addprefix ldap-,proto) util ldap-nss
|
||||
libnss_ldap-map := libnss_ldap.map
|
||||
|
||||
|
||||
# Build static module if requested
|
||||
|
@ -205,9 +205,6 @@ main (int argc, char *argv[])
|
||||
{
|
||||
struct test_case_struct ts;
|
||||
|
||||
printf ("Test %d (~root): ", ++tests);
|
||||
fflush (stdout);
|
||||
|
||||
ts.retval = 0;
|
||||
ts.env = NULL;
|
||||
ts.words = "~root";
|
||||
@ -217,12 +214,7 @@ main (int argc, char *argv[])
|
||||
ts.ifs = IFS;
|
||||
|
||||
if (testit (&ts))
|
||||
{
|
||||
printf ("FAILED\n");
|
||||
++fail;
|
||||
}
|
||||
else
|
||||
printf ("OK\n");
|
||||
++fail;
|
||||
}
|
||||
|
||||
puts ("tests completed, now cleaning up");
|
||||
|
@ -36,13 +36,11 @@ extra-libs-others = $(extra-libs)
|
||||
libresolv-routines := gethnamaddr res_comp res_debug \
|
||||
res_data res_mkquery res_query res_send \
|
||||
inet_net_ntop inet_net_pton inet_neta base64
|
||||
libresolv-map := libresolv.map
|
||||
|
||||
subdir-dirs = nss_dns
|
||||
vpath %.c nss_dns
|
||||
|
||||
libnss_dns-routines := dns-host dns-network
|
||||
libnss_dns-map := libnss_dns.map
|
||||
ifneq ($(build-static-nss),yes)
|
||||
libnss_dns-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
endif
|
||||
|
@ -28,8 +28,6 @@ librt-routines := aio_cancel aio_error aio_fsync aio_misc aio_read \
|
||||
aio_write64 lio_listio lio_listio64 aio_sigqueue \
|
||||
aio_notify
|
||||
|
||||
librt-map := librt.map
|
||||
|
||||
# Make sure that everything is distributed independent of configuration.
|
||||
distribute := aio_misc.h $(librt-routines:=.c) $(librt-map)
|
||||
|
||||
|
@ -134,15 +134,14 @@ $(inst_sysconfdir)/rpc: etc.rpc $(+force)
|
||||
# Generate the rpcsvc headers with rpcgen.
|
||||
# We use a stamp file to avoid unnessary recompilation each time rpcgen is
|
||||
# relinked.
|
||||
move-if-change = ./$(..)scripts/move-if-change
|
||||
$(rpcsvc:%.x=$(objpfx)rpcsvc/%.h): $(objpfx)rpcsvc/%.h: $(objpfx)rpcsvc/%.stmp
|
||||
@:
|
||||
$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen
|
||||
$(make-target-directory)
|
||||
-@rm -f ${@:stmp=T} $@
|
||||
$(rpcgen-cmd) -h $< -o ${@:stmp=T}
|
||||
if test -r ${@:stmp=h} && cmp -s ${@:stmp=h} ${@:stmp=T}; \
|
||||
then rm -f ${@:stmp=T}; \
|
||||
else mv -f ${@:stmp=T} ${@:stmp=h}; fi
|
||||
$(move-if-change) $(@:stmp=T) $(@:stmp=h)
|
||||
touch $@
|
||||
|
||||
# Generate the rpcsvc XDR functions with rpcgen.
|
||||
@ -151,9 +150,7 @@ $(rpcsvc:%.x=$(objpfx)x%.c): $(objpfx)x%.c: $(objpfx)x%.stmp
|
||||
$(objpfx)x%.stmp: rpcsvc/%.x $(objpfx)rpcgen
|
||||
-@rm -f ${@:stmp=T} $@
|
||||
$(rpcgen-cmd) -c $< -o ${@:stmp=T}
|
||||
if test -r ${@:stmp=c} && cmp -s ${@:stmp=c} ${@:stmp=T}; \
|
||||
then rm -f ${@:stmp=T}; \
|
||||
else mv -f ${@:stmp=T} ${@:stmp=c}; fi
|
||||
$(move-if-change) $(@:stmp=T) $(@:stmp=c)
|
||||
touch $@
|
||||
|
||||
# The generated source files depend on the corresponding generated headers.
|
||||
|
@ -61,6 +61,8 @@ __libc_lock_define_initialized (static, envlock)
|
||||
# define setenv __setenv
|
||||
# define unsetenv __unsetenv
|
||||
# define clearenv __clearenv
|
||||
# define tfind __tfind
|
||||
# define tsearch __tsearch
|
||||
#endif
|
||||
|
||||
/* In the GNU C library implementation we try to be more clever and
|
||||
@ -75,8 +77,20 @@ __libc_lock_define_initialized (static, envlock)
|
||||
values. */
|
||||
static void *known_values;
|
||||
|
||||
# define KNOWN_VALUE(Str) tfind (Str, &known_values, (__compar_fn_t) strcmp)
|
||||
# define STORE_VALUE(Str) tsearch (Str, &known_values, (__compar_fn_t) strcmp)
|
||||
# define KNOWN_VALUE(Str) \
|
||||
({ \
|
||||
void **value = tfind (Str, &known_values, (__compar_fn_t) strcmp); \
|
||||
if (value != NULL) \
|
||||
value = *(const char **) value; \
|
||||
value; \
|
||||
})
|
||||
# define STORE_VALUE(Str) \
|
||||
({ \
|
||||
void **value = tsearch (Str, &known_values, (__compar_fn_t) strcmp); \
|
||||
if (value != NULL) \
|
||||
value = *(const char **) value; \
|
||||
value; \
|
||||
})
|
||||
|
||||
#else
|
||||
# undef USE_TSEARCH
|
||||
@ -240,7 +254,7 @@ unsetenv (name)
|
||||
char **dp = ep;
|
||||
|
||||
/* Store the value so that we can reuse it later. */
|
||||
STORE_VALUE (ep);
|
||||
STORE_VALUE (*ep);
|
||||
|
||||
do
|
||||
dp[0] = dp[1];
|
||||
|
@ -80,6 +80,7 @@ enum __socket_type
|
||||
#define PF_ASH 18 /* Ash. */
|
||||
#define PF_ECONET 19 /* Acorn Econet. */
|
||||
#define PF_ATMSVC 20 /* ATM SVCs. */
|
||||
#define PF_SNA 22 /* Linux SNA Project */
|
||||
#define PF_MAX 32 /* For now.. */
|
||||
|
||||
/* Address families. */
|
||||
@ -107,6 +108,7 @@ enum __socket_type
|
||||
#define AF_ASH PF_ASH
|
||||
#define AF_ECONET PF_ECONET
|
||||
#define AF_ATMSVC PF_ATMSVC
|
||||
#define AF_SNA PF_SNA
|
||||
#define AF_MAX PF_MAX
|
||||
|
||||
/* Socket level values. Others are defined in the appropriate headers.
|
||||
|
@ -90,7 +90,6 @@ __tzfile_read (const char *file)
|
||||
struct tzhead tzhead;
|
||||
size_t chars;
|
||||
register size_t i;
|
||||
struct ttinfo *info;
|
||||
|
||||
__use_tzfile = 0;
|
||||
|
||||
@ -415,13 +414,14 @@ find_transition (time_t timer)
|
||||
|
||||
int
|
||||
__tzfile_compute (time_t timer, int use_localtime,
|
||||
long int *leap_correct, int *leap_hit)
|
||||
long int *leap_correct, int *leap_hit,
|
||||
int *isdst, long int *offset)
|
||||
{
|
||||
struct ttinfo *info = find_transition (timer);
|
||||
register size_t i;
|
||||
|
||||
if (use_localtime)
|
||||
{
|
||||
struct ttinfo *info = find_transition (timer);
|
||||
__daylight = rule_stdoff != rule_dstoff;
|
||||
__timezone = -rule_stdoff;
|
||||
__tzname[1] = NULL;
|
||||
@ -434,6 +434,9 @@ __tzfile_compute (time_t timer, int use_localtime,
|
||||
__tzname[1] = __tzname[0];
|
||||
}
|
||||
|
||||
*isdst = info->isdst;
|
||||
*offset = info->offset;
|
||||
|
||||
*leap_correct = 0L;
|
||||
*leap_hit = 0;
|
||||
|
||||
|
18
time/tzset.c
18
time/tzset.c
@ -37,7 +37,8 @@ extern struct tm _tmbuf;
|
||||
extern int __use_tzfile;
|
||||
extern void __tzfile_read __P ((const char *file));
|
||||
extern int __tzfile_compute __P ((time_t timer, int use_localtime,
|
||||
long int *leap_correct, int *leap_hit));
|
||||
long int *leap_correct, int *leap_hit,
|
||||
int *isdst, long int *offset));
|
||||
extern void __tzfile_default __P ((const char *std, const char *dst,
|
||||
long int stdoff, long int dstoff));
|
||||
extern char *__tzstring __P ((const char *string));
|
||||
@ -594,6 +595,8 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
|
||||
{
|
||||
long int leap_correction;
|
||||
int leap_extra_secs;
|
||||
int isdst;
|
||||
long int offset;
|
||||
|
||||
if (timer == NULL)
|
||||
{
|
||||
@ -612,7 +615,8 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
|
||||
if (__use_tzfile)
|
||||
{
|
||||
if (! __tzfile_compute (*timer, use_localtime,
|
||||
&leap_correction, &leap_extra_secs))
|
||||
&leap_correction, &leap_extra_secs,
|
||||
&isdst, &offset))
|
||||
tp = NULL;
|
||||
}
|
||||
else
|
||||
@ -621,16 +625,18 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
|
||||
tp = NULL;
|
||||
leap_correction = 0L;
|
||||
leap_extra_secs = 0;
|
||||
|
||||
isdst = (*timer >= tz_rules[0].change && *timer < tz_rules[1].change);
|
||||
offset = tz_rules[isdst].offset;
|
||||
}
|
||||
|
||||
if (tp)
|
||||
{
|
||||
if (use_localtime)
|
||||
{
|
||||
tp->tm_isdst = (*timer >= tz_rules[0].change
|
||||
&& *timer < tz_rules[1].change);
|
||||
tp->tm_zone = __tzname[tp->tm_isdst];
|
||||
tp->tm_gmtoff = tz_rules[tp->tm_isdst].offset;
|
||||
tp->tm_isdst = isdst;
|
||||
tp->tm_zone = __tzname[isdst];
|
||||
tp->tm_gmtoff = offset;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -96,8 +96,7 @@ getfct (const char *to, const char *from)
|
||||
const char *cp = str; \
|
||||
char *result = NULL; \
|
||||
\
|
||||
while (strchr ("@.+,", *cp) == NULL) \
|
||||
++cp; \
|
||||
cp += strcspn (cp, "@.+,"); \
|
||||
if (*cp == '.') \
|
||||
{ \
|
||||
const char *endp = ++cp; \
|
||||
|
Loading…
Reference in New Issue
Block a user