Tue Apr 11 20:38:55 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
authorRoland McGrath <roland@gnu.org>
Wed, 12 Apr 1995 01:03:38 +0000 (01:03 +0000)
committerRoland McGrath <roland@gnu.org>
Wed, 12 Apr 1995 01:03:38 +0000 (01:03 +0000)
* sysdeps/i386/add_n.S [PIC]: Use self-call to avoid generating reloc.
* sysdeps/i386/sub_n.S [PIC]: Likewise.

* libc-symbols.h (_elf_set_element) [PIC]: Don't make the element
  word `const'.

* Makeconfig (CPPFLAGS, CFLAGS): Fix swapped references to
  $(foo-$(suffix $@)).

* manual/Makefile (chapters-incl): Filter out summary.texi.

ChangeLog
Makeconfig
libc-symbols.h
manual/Makefile
sysdeps/i386/add_n.S
sysdeps/i386/sub_n.S

index f859c74..668e4bf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,18 @@
+Tue Apr 11 20:38:55 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+       * sysdeps/i386/add_n.S [PIC]: Use self-call to avoid generating reloc.
+       * sysdeps/i386/sub_n.S [PIC]: Likewise.
+
 Mon Apr 10 14:53:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
 
+       * libc-symbols.h (_elf_set_element) [PIC]: Don't make the element
+       word `const'.
+
+       * Makeconfig (CPPFLAGS, CFLAGS): Fix swapped references to
+       $(foo-$(suffix $@)).
+
+       * manual/Makefile (chapters-incl): Filter out summary.texi.
+
        * stdlib/strtod.c (STRTOF): Use extra macro to make STRTOF's #defn
        a weak symbol instead of literal "STRTOF".
 
index 1080646..823b7f4 100644 (file)
@@ -340,8 +340,8 @@ endif       # gcc
 
 # These are the variables that the implicit compilation rules use.
 CPPFLAGS = $(+includes) $(defines) -include $(..)libc-symbols.h \
-          $(sysdep-CPPFLAGS) $(CFLAGS-$(suffix $@))
-override CFLAGS        = $(+cflags) $(sysdep-CFLAGS) $(CPPFLAGS-$(suffix $@))
+          $(sysdep-CPPFLAGS) $(CPPFLAGS-$(suffix $@))
+override CFLAGS        = $(+cflags) $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@))
 
 
 # This is the macro that the implicit linking rules use.
index 83773bf..be88e76 100644 (file)
@@ -153,9 +153,17 @@ Cambridge, MA 02139, USA.  */
 
 /* These are all done the same way in ELF.
    There is a new section created for each set.  */
+#ifdef PIC
+/* When building a shared library, make the set section writable,
+   because it will need to be relocated at run time anyway.  */
+#define _elf_set_element(set, symbol) \
+  static const void *__elf_set_##set##_element_##symbol##__ \
+    __attribute__ ((section (#set))) = &(symbol)
+#else
 #define _elf_set_element(set, symbol) \
   static const void *const __elf_set_##set##_element_##symbol##__ \
     __attribute__ ((section (#set))) = &(symbol)
+#endif
 
 /* Define SET as a symbol set.  This may be required (it is in a.out) to
    be able to use the set's contents.  */
index 57e6ae2..ca930fd 100644 (file)
@@ -1,6 +1,6 @@
 # Makefile for the GNU C Library manual.
 
-# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995 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
@@ -35,11 +35,11 @@ endif
 include chapters
 chapters: libc.texinfo
        $(find-includes)
-chapters := $(filter-out summary.texi,$(chapters))
 ifdef chapters
 include chapters-incl
 chapters-incl: $(chapters)
        $(find-includes)
+chapters-incl := $(filter-out summary.texi,$(chapters-incl))
 endif
 
 define find-includes
index f528976..02f696a 100644 (file)
@@ -53,7 +53,14 @@ C_SYMBOL_NAME(__mpn_add_n:)
        subl    %eax,%esi               /* ... by a constant when we ... */
        subl    %eax,%edx               /* ... enter the loop */
        shrl    $2,%eax                 /* restore previous value */
+#ifdef PIC
+       call    here
+here:  leal    (Loop - 3 - here)(%eax,%eax,8),%eax
+       addl    (%esp),%eax
+       addl    $4,%esp
+#else
        leal    (Loop - 3)(%eax,%eax,8),%eax    /* calc start addr in loop */
+#endif
        jmp     *%eax                   /* jump into loop */
        ALIGN (3)
 Loop:  movl    (%esi),%eax
index a1630d4..63086bd 100644 (file)
@@ -53,7 +53,14 @@ C_SYMBOL_NAME(__mpn_sub_n:)
        subl    %eax,%esi               /* ... by a constant when we ... */
        subl    %eax,%edx               /* ... enter the loop */
        shrl    $2,%eax                 /* restore previous value */
+#ifdef PIC
+       call    here
+here:  leal    (Loop - 3 - here)(%eax,%eax,8),%eax
+       addl    (%esp),%eax
+       addl    $4,%esp
+#else
        leal    (Loop - 3)(%eax,%eax,8),%eax    /* calc start addr in loop */
+#endif
        jmp     *%eax                   /* jump into loop */
        ALIGN (3)
 Loop:  movl    (%esi),%eax