This is the mail archive of the ecos-discuss@sourceware.cygnus.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [ECOS] linux .rel.got problem


>>>>> "Andrew" == Andrew Lunn <lunn@ma.tech.ascom.ch> writes:

Andrew> Hi folks I've run into one of the known problems with the
Andrew> synthetic linux system. The problem is with the .rel.got
Andrew> section, problem #18956.

Andrew> The workaround is "Add a .rel.got linker-defined memory
Andrew> section to the memory layout when building eCos under these
Andrew> conditions". Could someone turn this in plainer English, ive
Andrew> no idea what to do! Im behind a firewall so cannot get at the
Andrew> CVS repositry.

It's quite plain... but it may not be proper English :)

Below's the patch used to fix the PR:

Jesper


# cvs -q diff -D"05/14/1999 11:49:21 UTC" -D"05/14/1999 11:51:21 UTC" -u
Index: ChangeLog
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/arch/current/ChangeLog,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- ChangeLog	1999/05/13 18:00:33	1.34
+++ ChangeLog	1999/05/14 11:50:21	1.35
@@ -1,3 +1,7 @@
+1999-05-14  Jesper Skov  <jskov@cygnus.co.uk>
+        PR 18956
+	* src/i386.ld: Fixed problem with rel_got.
+
 1999-05-13  Hugo Tyson  <hmt@cygnus.co.uk>
 
 	* include/hal_arch.h (HAL_THREAD_INIT_CONTEXT): Align stack
Index: src/i386.ld
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/arch/current/src/i386.ld,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- src/i386.ld	1999/04/08 14:04:33	1.12
+++ src/i386.ld	1999/05/14 11:50:22	1.13
@@ -90,10 +90,9 @@
       _EXCEPT_END_ = ABSOLUTE(.);}                                      \
     > _region_
 
-#define SECTION_rel__got(_region_, _vma_, _lma_)        \
+#define SECTION_rel_got(_region_, _vma_, _lma_)        \
     .rel.got _vma_ : _lma_                                            \
-    { FORCE_OUTPUT;                           \
-      *(.rel.got)      }                                        \
+    { *(.rel.got)      }                                        \
     > _region_
 
 #define SECTION_data(_region_, _vma_, _lma_)                       \

# cvs -q diff -D"05/14/1999 11:49:24 UTC" -D"05/14/1999 11:51:24 UTC" -u
Index: ChangeLog
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/linux/current/ChangeLog,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- ChangeLog	1999/04/08 14:04:34	1.24
+++ ChangeLog	1999/05/14 11:50:24	1.25
@@ -1,3 +1,9 @@
+1999-05-14  Jesper Skov  <jskov@cygnus.co.uk>
+        PR 18956
+	* include/pkgconf/mlt_i386_linux_ram.mlt: 
+	* include/pkgconf/mlt_i386_linux_ram.ldi: 
+	Fixed problem with rel_got.
+
 1999-04-08  John Dallaway  <jld@cygnus.co.uk>
 
 	* include/pkgconf/mlt_*.*: Use double underscore substitution
Index: include/pkgconf/mlt_i386_linux_ram.ldi
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/linux/current/include/pkgconf/mlt_i386_linux_ram.ldi,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- include/pkgconf/mlt_i386_linux_ram.ldi	1999/04/08 14:04:35	1.5
+++ include/pkgconf/mlt_i386_linux_ram.ldi	1999/05/14 11:50:25	1.6
@@ -31,11 +31,6 @@
     ram : ORIGIN = 0x00000000, LENGTH = 0x800000
 }
 
-// The rel__got section doesn't result in any output but the linker
-// complains if it is not present. It is necessary when compiling
-// with CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE=true but causes
-// problems with BFD when this option is false.
-
 SECTIONS
 {
     SECTIONS_BEGIN
@@ -46,7 +41,7 @@
     SECTION_rodata (ram, ALIGN (0x8), LMA_EQ_VMA)
     SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
-//    SECTION_rel__got (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_rel_got (ram, ALIGN (0x1), LMA_EQ_VMA)
     SECTION_data (ram, ALIGN (0x8), LMA_EQ_VMA)
     SECTION_sbss (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
Index: include/pkgconf/mlt_i386_linux_ram.mlt
===================================================================
RCS file: /cvs/ecc/ecc/hal/i386/linux/current/include/pkgconf/mlt_i386_linux_ram.mlt,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- include/pkgconf/mlt_i386_linux_ram.mlt	1999/03/04 09:48:58	1.1
+++ include/pkgconf/mlt_i386_linux_ram.mlt	1999/05/14 11:50:26	1.2
@@ -6,7 +6,8 @@
 section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
 section rodata 0 8 0 1 0 1 0 1 fixup fixup !
 section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
-section gcc_except_table 0 1 0 1 0 1 0 1 data data !
+section gcc_except_table 0 1 0 1 0 1 0 1 rel_got rel_got !
+section rel_got 0 1 0 1 0 1 0 1 data data !
 section data 0 8 0 1 0 1 0 1 sbss sbss !
 section sbss 0 4 0 1 0 1 0 1 bss bss !
 section bss 0 10 0 1 0 0 0 0 !

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]