diff options
author | Roland McGrath <roland@gnu.org> | 1995-06-12 18:26:02 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-06-12 18:26:02 +0000 |
commit | 1a2df358c8b1bc40035e30fe12cc4187655dd326 (patch) | |
tree | 869f1b729d6f742584e6319e39c40ab7894d78b5 | |
parent | f2b0f935d7c8de544408181350c13d8a4db690ca (diff) | |
download | glibc-1a2df358c8b1bc40035e30fe12cc4187655dd326.tar.gz |
Mon Jun 12 13:15:45 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Makerules (lib%.so: lib%_pic.a): Moved this rule to after
installation rules.
* sysdeps/mach/sysdep.h [HAVE_ELF] (ENTRY): Redefine this macro so
it uses the `.type' directive, which is necessary for shared
libraries to work properly.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | Makerules | 39 | ||||
-rw-r--r-- | sysdeps/mach/sysdep.h | 11 |
3 files changed, 41 insertions, 18 deletions
@@ -1,3 +1,12 @@ +Mon Jun 12 13:15:45 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> + + * Makerules (lib%.so: lib%_pic.a): Moved this rule to after + installation rules. + + * sysdeps/mach/sysdep.h [HAVE_ELF] (ENTRY): Redefine this macro so + it uses the `.type' directive, which is necessary for shared + libraries to work properly. + Thu Jun 8 02:50:26 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * elf/dl-load.c (_dl_map_object): Add MAP_INHERIT flag in mmap @@ -350,24 +350,6 @@ lib: lib-noranlib $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c)) # Pattern rule for libraries: depend on the __.SYMDEF member updated by ranlib. lib%.a: lib%.a(__.SYMDEF) ; -ifeq (yes,$(build-shared)) -# Pattern rule to build a shared object from an archive of PIC objects. -# $(LDLIBS-%.so) may contain -l switches to generate run-time dependencies -# on other shared objects. -lib%.so: lib%_pic.a - $(LINK.o) -shared -o $@ \ - $(LDFLAGS.so) $(LDFLAGS-$(notdir $*).so) \ - -L$(firstword $(objdir) .) -L$(common-objpfx:%/=%) \ - $(LDLIBS-$(notdir $*).so) -Wl,--whole-archive $< \ - -# Don't try to use -lc when making libc.so itself. -# Also omits crti.o and crtn.o, which we do not want -# since we define our own `.init' section specially. -LDFLAGS-c.so = -nostdlib -nostartfiles -# Give libc.so an entry point and make it directly runnable itself. -LDFLAGS-c.so += -Wl,-dynamic-linker -Wl,/lib/ld.so -e __libc_print_version -endif - libobjs: $(foreach o,$(object-suffixes),\ $(common-objpfx)$(patsubst %,$(libtype$o),c)(\ $(notdir $(objects:.o=$o)))) @@ -564,6 +546,27 @@ install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir\ install-others-nosubdir install-sbin-nosubdir install: install-no-libc.a-nosubdir +ifeq (yes,$(build-shared)) +# Pattern rule to build a shared object from an archive of PIC objects. +# This must come after the installation rules so Make doesn't try to +# build shared libraries in place from the installed *_pic.a files. +# $(LDLIBS-%.so) may contain -l switches to generate run-time dependencies +# on other shared objects. +lib%.so: lib%_pic.a + $(LINK.o) -shared -o $@ \ + $(LDFLAGS.so) $(LDFLAGS-$(notdir $*).so) \ + -L$(firstword $(objdir) .) -L$(common-objpfx:%/=%) \ + $(LDLIBS-$(notdir $*).so) -Wl,--whole-archive $< \ + +# Don't try to use -lc when making libc.so itself. +# Also omits crti.o and crtn.o, which we do not want +# since we define our own `.init' section specially. +LDFLAGS-c.so = -nostdlib -nostartfiles +# Give libc.so an entry point and make it directly runnable itself. +LDFLAGS-c.so += -Wl,-dynamic-linker -Wl,/lib/ld.so -e __libc_print_version +endif + + # Command to compile $< in $(objdir) using the native libraries. define native-compile cwd=`pwd`; cd $(@D); $(BUILD_CC) $(BUILD_CFLAGS) \ diff --git a/sysdeps/mach/sysdep.h b/sysdeps/mach/sysdep.h index 9a8dbd5163..d5d370efd0 100644 --- a/sysdeps/mach/sysdep.h +++ b/sysdeps/mach/sysdep.h @@ -28,6 +28,17 @@ Cambridge, MA 02139, USA. */ #define EXT(x) C_SYMBOL_NAME(x) #define LEXT(x) C_SYMBOL_NAME(x##:) +#ifdef HAVE_ELF +/* For ELF we need to add the `.type' directive to make shared libraries + work right. */ +#undef ENTRY +#define ENTRY(name) \ + ASM_GLOBAL_DIRECTIVE name; \ + .align ALIGN; \ + .type name,@function; \ + name: +#endif + #endif /* This is invoked by things run when there is random lossage, before they |