This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: Fix libgloss MIPS scripts for .sbss comdat sections


Ping.

Richard Sandiford <richard@codesourcery.com> writes:
> This patch fixes some g++ failures for mips64-elf.  The problem was
> that the idt.ld script doesn't include .sbss.* input sections in the
> .sbss output section.  From what I can see, other core sections like
> .text and .data are already handled correctly.
>
> I also noticed that .gnu.linkonce.sb.* sections are included in
> .sdata rather than .sbss.  I thought I might as well fix that
> at the same time.
>
> The usual problem with MIPS libgloss scripts applies.  The target
> I'm testing (mips64-elf) only uses idt.ld, but there are many other
> MIPS scripts with the same problem.  I've patched them all in the
> same way.
>
> Patch tested against gcc on mips64-elf-g++.  It fixes 5 of the 6
> g++ failures:
>
>     FAIL: g++.dg/rtti/typeid4.C execution test
>     FAIL: g++.old-deja/g++.other/singleton.C execution test
>     FAIL: g++.old-deja/g++.other/unchanging1.C execution test
>     FAIL: g++.old-deja/g++.pt/deduct5.C execution test
>     FAIL: g++.old-deja/g++.robertl/eb77.C execution test
>
> and introduces no regressions.  OK to install?
>
> Richard
>
>
> 	* mips/array.ld (.sdata): Include .gnu.linkonce.s.*, not
> 	.gnu.linkonce.s*.
> 	(.sbss): Include .sbss.* and .gnu.linkonce.sb.*.
> 	* mips/cfe.ld, mips/ddb-kseg0.ld, mips/ddb.ld, mips/dve.ld,
> 	* mips/idt32.ld, mips/idt64.ld, mips/idtecoff.ld, mips/idt.ld,
> 	* mips/jmr3904app-java.ld, mips/jmr3904app.ld,
> 	* mips/jmr3904dram-java.ld, mips/jmr3904dram.ld,
> 	* mips/lsi.ld, mips/nullmon.ld, mips/pmon.ld: As for mips/array.ld.
>
> Index: libgloss/mips/array.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/array.ld,v
> retrieving revision 1.4
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.4 array.ld
> --- libgloss/mips/array.ld	12 Apr 2005 08:06:40 -0000	1.4
> +++ libgloss/mips/array.ld	10 Jul 2005 15:52:01 -0000
> @@ -158,13 +158,15 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>     edata  =  .;
>     _edata  =  .;
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/cfe.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/cfe.ld,v
> retrieving revision 1.6
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.6 cfe.ld
> --- libgloss/mips/cfe.ld	20 May 2005 15:45:43 -0000	1.6
> +++ libgloss/mips/cfe.ld	10 Jul 2005 15:52:01 -0000
> @@ -115,7 +115,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     PROVIDE (edata  =  .);
> @@ -123,6 +123,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/ddb-kseg0.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/ddb-kseg0.ld,v
> retrieving revision 1.6
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.6 ddb-kseg0.ld
> --- libgloss/mips/ddb-kseg0.ld	20 May 2005 15:45:43 -0000	1.6
> +++ libgloss/mips/ddb-kseg0.ld	10 Jul 2005 15:52:01 -0000
> @@ -109,7 +109,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -117,6 +117,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/ddb.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/ddb.ld,v
> retrieving revision 1.6
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.6 ddb.ld
> --- libgloss/mips/ddb.ld	20 May 2005 15:45:43 -0000	1.6
> +++ libgloss/mips/ddb.ld	10 Jul 2005 15:52:01 -0000
> @@ -109,7 +109,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -117,6 +117,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/dve.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/dve.ld,v
> retrieving revision 1.6
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.6 dve.ld
> --- libgloss/mips/dve.ld	20 May 2005 15:45:43 -0000	1.6
> +++ libgloss/mips/dve.ld	10 Jul 2005 15:52:01 -0000
> @@ -110,7 +110,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -118,6 +118,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/idt32.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/idt32.ld,v
> retrieving revision 1.5
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.5 idt32.ld
> --- libgloss/mips/idt32.ld	20 May 2005 15:45:43 -0000	1.5
> +++ libgloss/mips/idt32.ld	10 Jul 2005 15:52:01 -0000
> @@ -118,7 +118,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>    PROVIDE (edata  =  .);
> @@ -126,6 +126,8 @@ SECTIONS
>    _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/idt64.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/idt64.ld,v
> retrieving revision 1.5
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.5 idt64.ld
> --- libgloss/mips/idt64.ld	20 May 2005 15:45:43 -0000	1.5
> +++ libgloss/mips/idt64.ld	10 Jul 2005 15:52:01 -0000
> @@ -117,7 +117,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>    PROVIDE (edata  =  .);
> @@ -125,6 +125,8 @@ SECTIONS
>    _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/idtecoff.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/idtecoff.ld,v
> retrieving revision 1.3
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.3 idtecoff.ld
> --- libgloss/mips/idtecoff.ld	12 Apr 2005 08:06:40 -0000	1.3
> +++ libgloss/mips/idtecoff.ld	10 Jul 2005 15:52:01 -0000
> @@ -75,7 +75,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -83,6 +83,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/idt.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/idt.ld,v
> retrieving revision 1.7
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.7 idt.ld
> --- libgloss/mips/idt.ld	20 May 2005 15:45:43 -0000	1.7
> +++ libgloss/mips/idt.ld	10 Jul 2005 15:52:01 -0000
> @@ -116,7 +116,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     PROVIDE (edata  =  .);
> @@ -124,6 +124,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/jmr3904app-java.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/jmr3904app-java.ld,v
> retrieving revision 1.5
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.5 jmr3904app-java.ld
> --- libgloss/mips/jmr3904app-java.ld	20 May 2005 15:45:43 -0000	1.5
> +++ libgloss/mips/jmr3904app-java.ld	10 Jul 2005 15:52:01 -0000
> @@ -75,7 +75,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -83,6 +83,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/jmr3904app.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/jmr3904app.ld,v
> retrieving revision 1.6
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.6 jmr3904app.ld
> --- libgloss/mips/jmr3904app.ld	20 May 2005 15:45:43 -0000	1.6
> +++ libgloss/mips/jmr3904app.ld	10 Jul 2005 15:52:01 -0000
> @@ -108,7 +108,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -116,6 +116,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/jmr3904dram-java.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/jmr3904dram-java.ld,v
> retrieving revision 1.5
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.5 jmr3904dram-java.ld
> --- libgloss/mips/jmr3904dram-java.ld	20 May 2005 15:45:43 -0000	1.5
> +++ libgloss/mips/jmr3904dram-java.ld	10 Jul 2005 15:52:01 -0000
> @@ -77,7 +77,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -85,6 +85,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/jmr3904dram.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/jmr3904dram.ld,v
> retrieving revision 1.5
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.5 jmr3904dram.ld
> --- libgloss/mips/jmr3904dram.ld	20 May 2005 15:45:43 -0000	1.5
> +++ libgloss/mips/jmr3904dram.ld	10 Jul 2005 15:52:01 -0000
> @@ -74,7 +74,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -82,6 +82,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/lsi.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/lsi.ld,v
> retrieving revision 1.5
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.5 lsi.ld
> --- libgloss/mips/lsi.ld	12 Apr 2005 08:06:40 -0000	1.5
> +++ libgloss/mips/lsi.ld	10 Jul 2005 15:52:01 -0000
> @@ -109,13 +109,15 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>     edata  =  .;
>     _edata  =  .;
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/nullmon.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/nullmon.ld,v
> retrieving revision 1.6
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.6 nullmon.ld
> --- libgloss/mips/nullmon.ld	20 May 2005 15:45:43 -0000	1.6
> +++ libgloss/mips/nullmon.ld	10 Jul 2005 15:52:01 -0000
> @@ -110,7 +110,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -118,6 +118,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {
> Index: libgloss/mips/pmon.ld
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/pmon.ld,v
> retrieving revision 1.6
> diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.6 pmon.ld
> --- libgloss/mips/pmon.ld	20 May 2005 15:45:43 -0000	1.6
> +++ libgloss/mips/pmon.ld	10 Jul 2005 15:52:01 -0000
> @@ -110,7 +110,7 @@ SECTIONS
>    .sdata : {
>      *(.sdata)
>      *(.sdata.*)
> -    *(.gnu.linkonce.s*)
> +    *(.gnu.linkonce.s.*)
>    }
>    . = ALIGN(4);
>     edata  =  .;
> @@ -118,6 +118,8 @@ SECTIONS
>     _fbss = .;
>    .sbss : {
>      *(.sbss)
> +    *(.sbss.*)
> +    *(.gnu.linkonce.sb.*)
>      *(.scommon)
>    }
>    .bss : {


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