(dlerror): Don't assume that __libc_internal_tsd_get is defined. __libc_getspecific is already well-protected, so just use it directly.

This commit is contained in:
Ulrich Drepper 1998-04-23 22:45:20 +00:00
parent dc9335c14f
commit af3878dff0
5 changed files with 32 additions and 29 deletions

View File

@ -232,7 +232,7 @@ endif
# The `glibcbug' script contains the version number and it shall be rebuild # The `glibcbug' script contains the version number and it shall be rebuild
# whenever this changes or the `glibcbug.in' file. # whenever this changes or the `glibcbug.in' file.
$(objpfx)glibcbug: $(common-objpfx)config.status glibcbug.in $(objpfx)glibcbug: $(common-objpfx)config.status glibcbug.in
cd $(<D); CONFIG_FILES=$(@F) CONFIG_HEADERS= $(SHELL) $(<F) cd $(<D) && CONFIG_FILES=$(@F) CONFIG_HEADERS= $(SHELL) $(<F)
# This makes the Info or DVI file of the documentation from the Texinfo source. # This makes the Info or DVI file of the documentation from the Texinfo source.
.PHONY: info dvi .PHONY: info dvi

View File

@ -573,8 +573,8 @@ object-suffixes-left := $(object-suffixes)
endif endif
include $(o-iterator) include $(o-iterator)
define do-ar define do-ar
topdir=`cd $(..).; pwd`; \ topdir=`cd $(..). && pwd`; \
$(patsubst %/,cd %;,$(objpfx)) \ $(patsubst %/,cd % &&,$(objpfx)) \
$(SHELL) $$topdir/autolock.sh ${O%-lib}.lck $(AR) $(CREATE_ARFLAGS) ${O%-lib} \ $(SHELL) $$topdir/autolock.sh ${O%-lib}.lck $(AR) $(CREATE_ARFLAGS) ${O%-lib} \
$(patsubst $(objpfx)%,%,$?) $(patsubst $(objpfx)%,%,$?)
rm -f $@ rm -f $@
@ -617,7 +617,7 @@ objects objs: $(foreach o,$(object-suffixes-for-libc),$(o-objects)) \
# Canned sequence for building an extra library archive. # Canned sequence for building an extra library archive.
define build-extra-lib define build-extra-lib
$(patsubst %/,cd %;,$(objpfx)) \ $(patsubst %/,cd % &&,$(objpfx)) \
$(AR) $(CREATE_ARFLAGS) $(@:$(objpfx)%=%) \ $(AR) $(CREATE_ARFLAGS) $(@:$(objpfx)%=%) \
$(patsubst $(objpfx)%,%,$^) $(patsubst $(objpfx)%,%,$^)
$(RANLIB) $@ $(RANLIB) $@
@ -901,7 +901,7 @@ install: install-no-libc.a-nosubdir
# Command to compile $< in $(objdir) using the native libraries. # Command to compile $< in $(objdir) using the native libraries.
define native-compile define native-compile
$(make-target-directory) $(make-target-directory)
$(patsubst %/,cd %;,$(objpfx)) \ $(patsubst %/,cd % &&,$(objpfx)) \
$(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) \ $(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) \
$(firstword $(filter /%,$< $(shell pwd)/$<)) -o $(@F) $(firstword $(filter /%,$< $(shell pwd)/$<)) -o $(@F)
endef endef
@ -909,7 +909,7 @@ endef
# Command to compile $< in $(common-objdir) using the native libraries. # Command to compile $< in $(common-objdir) using the native libraries.
# We must cd to $(objdir) anyway so that $(..)config.h is valid. # We must cd to $(objdir) anyway so that $(..)config.h is valid.
define common-objdir-compile define common-objdir-compile
$(patsubst %/,cd %;,$(objpfx)) \ $(patsubst %/,cd % &&,$(objpfx)) \
$(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) \ $(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) \
$(firstword $(filter /%,$< $(shell pwd)/$<)) -o $(..)$(@F) $(firstword $(filter /%,$< $(shell pwd)/$<)) -o $(..)$(@F)
endef endef
@ -978,8 +978,8 @@ stubs: $(common-objpfx)stub-$(subdir)
s = $(sysdep_dir)/generic s = $(sysdep_dir)/generic
$(common-objpfx)stub-$(subdir): $(+depfiles) $(common-objpfx)stub-$(subdir): $(+depfiles)
# Use /dev/null since `...` might expand to empty. # Use /dev/null since `...` might expand to empty.
(s=`cd $s; /bin/pwd`; \ (s=`cd $s && /bin/pwd`; \
$(patsubst %/,cd %;,$(objpfx)) \ $(patsubst %/,cd % &&,$(objpfx)) \
sed -n 's/^stub_warning *(\([^)]*\).*$$/#define __stub_\1/p' \ sed -n 's/^stub_warning *(\([^)]*\).*$$/#define __stub_\1/p' \
`sed -n -e '\@ $s/[^ ]*\.c@{; s@^.* $s/\([^ ]*\.c\).*$$@'"$$s"'/\1@; h; }' \ `sed -n -e '\@ $s/[^ ]*\.c@{; s@^.* $s/\([^ ]*\.c\).*$$@'"$$s"'/\1@; h; }' \
-e '/stub-tag\.h/{; g; p; }' \ -e '/stub-tag\.h/{; g; p; }' \

View File

@ -182,9 +182,13 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
struct r_search_path_elem *dirp; struct r_search_path_elem *dirp;
size_t len = strlen (cp); size_t len = strlen (cp);
/* `strsep' can pass an empty string. */ /* `strsep' can pass an empty string. This has to be
interpreted as `use the current directory'. */
if (len == 0) if (len == 0)
continue; {
static char curwd[2];
cp = strcpy (curwd, ".");
}
/* Remove trailing slashes. */ /* Remove trailing slashes. */
while (len > 1 && cp[len - 1] == '/') while (len > 1 && cp[len - 1] == '/')
@ -331,8 +335,11 @@ _dl_init_paths (const char *llp)
const char *cp = llp; const char *cp = llp;
nllp = 1; nllp = 1;
while (*cp) while (*cp)
if (*cp++ == ':') {
if (*cp == ':' || *cp == ';')
++nllp; ++nllp;
++cp;
}
} }
else else
nllp = 0; nllp = 0;

View File

@ -56,14 +56,9 @@ dlerror (void)
} }
/* Get error string. */ /* Get error string. */
if (__libc_internal_tsd_get != NULL)
{
result = (struct dl_action_result *) __libc_getspecific (key); result = (struct dl_action_result *) __libc_getspecific (key);
if (result == NULL) if (result == NULL)
result = &last_result; result = &last_result;
}
else
result = &last_result;
if (! result->errstring) if (! result->errstring)
return NULL; return NULL;

View File

@ -44,15 +44,15 @@ while read from to subset targets; do
for t in $targets; do for t in $targets; do
$ICONV -f $from -t $t testdata/$from > $temp1 || $ICONV -f $from -t $t testdata/$from > $temp1 ||
{ echo "*** conversion from $from to $t failed"; failed=1; } { echo "*** conversion from $from to $t failed"; failed=1; continue; }
if test -s testdata/$from..$t; then if test -s testdata/$from..$t; then
cmp $temp1 testdata/$from..$t >& /dev/null || cmp $temp1 testdata/$from..$t > /dev/null 2>&1 ||
{ echo "*** $from -> $t conversion failed"; failed=1; } { echo "*** $from -> $t conversion failed"; failed=1; continue; }
fi fi
$ICONV -f $t -t $to -o $temp2 $temp1 || $ICONV -f $t -t $to -o $temp2 $temp1 ||
{ echo "*** conversion from $t to $to failed"; failed=1; } { echo "*** conversion from $t to $to failed"; failed=1; continue; }
test -s $temp1 && cmp testdata/$from $temp2 >& /dev/null || test -s $temp1 && cmp testdata/$from $temp2 > /dev/null 2>&1 ||
{ echo "*** $from -> t -> $to conversion failed"; failed=1; } { echo "*** $from -> t -> $to conversion failed"; failed=1; continue; }
rm -f $temp1 $temp2 rm -f $temp1 $temp2
# Now test some bigger text, entirely in ASCII. If ASCII is no subset # Now test some bigger text, entirely in ASCII. If ASCII is no subset
@ -61,18 +61,19 @@ while read from to subset targets; do
if test $subset = Y; then if test $subset = Y; then
$ICONV -f $from -t $t testdata/suntzus | $ICONV -f $from -t $t testdata/suntzus |
$ICONV -f $t -t $to > $temp1 || $ICONV -f $t -t $to > $temp1 ||
{ echo "*** conversion $from->$t->$to of suntzus failed"; failed=1; } { echo "*** conversion $from->$t->$to of suntzus failed"; failed=1;
continue; }
cmp testdata/suntzus $temp1 || cmp testdata/suntzus $temp1 ||
{ echo "*** conversion $from->$t->$to of suntzus incorrect"; { echo "*** conversion $from->$t->$to of suntzus incorrect";
failed=1; } failed=1; continue; }
else else
$ICONV -f ASCII -t $to testdata/suntzus | $ICONV -f ASCII -t $to testdata/suntzus |
$ICONV -f $to -f ASCII > $temp1 || $ICONV -f $to -f ASCII > $temp1 ||
{ echo "*** conversion ASCII->$to->ASCII of suntzus failed"; { echo "*** conversion ASCII->$to->ASCII of suntzus failed";
failed=1; } failed=1; continue; }
cmp testdata/suntzus $temp1 || cmp testdata/suntzus $temp1 ||
{ echo "*** conversion ASCII->$to->ASCII of suntzus incorrect"; { echo "*** conversion ASCII->$to->ASCII of suntzus incorrect";
failed=1; } failed=1; continue; }
fi fi
rm -f $temp1 rm -f $temp1
# All tests ok. # All tests ok.