* dlfcn/Makefile (tests): Add errmsg1.
	(modules-names): Add errmsg1mod.
	Add rules to run errmsg1.
	* dlfcn/errmsg1.c: New file.
	* dlfcn/errmsg1mod.c: New file.
This commit is contained in:
Ulrich Drepper 2000-12-28 03:59:21 +00:00
parent 9c99fa3d31
commit f116c77f7b
4 changed files with 79 additions and 2 deletions

View File

@ -1,5 +1,11 @@
2000-12-27 Ulrich Drepper <drepper@redhat.com>
* dlfcn/Makefile (tests): Add errmsg1.
(modules-names): Add errmsg1mod.
Add rules to run errmsg1.
* dlfcn/errmsg1.c: New file.
* dlfcn/errmsg1mod.c: New file.
* dlfcn/dlerror.c (dlerror): Always create output string which
includes object file name.

View File

@ -34,9 +34,10 @@ endif
libdl-shared-only-routines += eval
ifeq (yes,$(build-shared))
tests = glrefmain failtest tst-dladdr default
tests = glrefmain failtest tst-dladdr default errmsg1
endif
modules-names = glreflib1 glreflib2 failtestmod defaultmod1 defaultmod2
modules-names = glreflib1 glreflib2 failtestmod defaultmod1 defaultmod2 \
errmsg1mod
extra-objs += $(modules-names:=.os) eval.os
generated := $(modules-names:=.so)
@ -63,3 +64,6 @@ $(objpfx)default: $(libdl) $(objpfx)defaultmod1.so $(objpfx)defaultmod2.so
$(objpfx)defaultmod1.so: $(libdl)
LDFLAGS-defaultmod2.so = -Bsymbolic
$(objpfx)defaultmod2.so: $(libdl)
$(objpfx)errmsg1: $(libdl)
$(objpfx)errmsg1.out: $(objpfx)errmsg1 $(objpfx)errmsg1mod.so

42
dlfcn/errmsg1.c Normal file
View File

@ -0,0 +1,42 @@
/* Copyright (C) 2000 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <dlfcn.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main (void)
{
void *h;
const char *s;
h = dlopen ("errmsg1mod.so", RTLD_NOW);
if (h != NULL)
{
dlclose (h);
puts ("errmsg1mod.so could be loaded !?");
exit (1);
}
s = dlerror ();
puts (s);
return strstr (s, "errmsg1mod.so") == NULL;
}

25
dlfcn/errmsg1mod.c Normal file
View File

@ -0,0 +1,25 @@
/* Copyright (C) 2000 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
extern int bar (void);
int
foo (void)
{
return bar ();
}