* Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
[not found] <14252.25683.4588.53797@gargle.gargle.HOWL>
@ 1999-08-07 16:21 ` H.J. Lu
1999-08-07 18:12 ` Ian Lance Taylor
0 siblings, 1 reply; 11+ messages in thread
From: H.J. Lu @ 1999-08-07 16:21 UTC (permalink / raw)
To: Wolfgang Wander; +Cc: jj, Ian Lance Taylor, binutils, egcs
>
> Jakub Jelinek writes:
> > > after Ian checked in your patch yesterday morning I still had this
> > > problem - with binutils-2.9.5.0.5 I can no longer reproduce it though.
> > >
> > > Should I try it again with an updated cvs version?
> >
> > Strange. 2.9.5.0.5 seems to have my patch and from that time on I'm not
> > aware of any sparc related changes.
> > If you can, could you check latest cvs version? If the problem remains,
> > could you please send me the binary of libNope.so from old binutils, cvs
> > mainline and perhaps 2.9.5.0.5?
> > I could arrange to get access to one Solaris box, but it would take a few
> > days, so it would be easier for me to inspect things on a sparc64-linux box.
>
> Jakub, Ian, H.J,
>
> here we go - the bug is still present in both binutils-2.9.5.0.5
> and the current cvs tree.
>
> You can however only trigger it by linking against a static
> libstd++ (the only way I could convince gcc to avoid the .so was
> to chmod 0 libstdc++.so*). The bug does not show up when you link
> against a dynamic libstd++.
>
> So after you run chmod 0 on your libstd++.so* (or build gcc without
> --enable-shared) you should run the script below to see the core dump
> and the behaviour described below.
The bug has been in binutils for a while. Ian, Jakub, with "make check"
in ld, I got
FAIL: shared (non PIC)
FAIL: shared (non PIC, load offset)
FAIL: shared (PIC main, non PIC so)
I believe it is related to this bug. When
# g++ -G -o libNope.so libNope.C
is used to generate a DSO, -lstdc++ is passed to ld. If there is no
libstd++.so, libstdc++.a will be used. However, gnu ld doesn't do the
right thing on Solaris/Sparc. Before gnu ld is fixed, the workarounds
are:
1. Use the native ld. Or
2. Use
# gcc -G -o libNope.so libNope.C
instead of
# g++ -G -o libNope.so libNope.C
It is better than putting non PIC code in a shared library. Or
3. Fix g++ such that passing -lstdc++ to ld for -G/-shared when
building shared library only if --enable-shared is used. It doesn't
make any senses to include libstdc++.a for a DSO.
My preferences are 3, 2 and 1. I may work on a patch for 3 if everyone
thinks it is a good idea.
Thanks.
H.J.
----
>
> Hope this helps.
>
>
> You guys are great - but you know that ;-)
>
> Wolfgang
>
> To: Ian Lance Taylor <ian@zembu.com>
> Cc: hjl@lucon.org
> Subject: Re: binutils 2.9.1.0.25 - solaris / gcc2.95
> Date: Fri, 6 Aug 1999 13:19:57 -0400 (EDT)
>
> Ian and H.J.,
>
> here is another problem I ran into - it seems not to be gcc related
> as static linking does not trigger the bug.
>
> The following example code
>
> ----------------------------------------------------------------------
> #!/bin/sh
>
> echo '
> void bugme(void);
> int main() {
> bugme();
> }' > test.C
>
> echo '
> #include <iostream>
> #include <strstream>
> #include <string>
> void bugme(void) {
> string a_string("a string of some size");
> ostrstream ostr;
> ostr << a_string << '"'"'\0'"'"';
> cout << ostr.str() << endl;
> ostr.freeze(false);
> }
> ' > libNope.C
>
>
> CC="g++-2.95-gnu -fPIC -g"
> $CC -G -o libNope.so libNope.C
> $CC -c -o libNope.o libNope.C
> ar rv libNope.a libNope.o
> $CC -g test.C -o bug -L. -lNope -Wl,-R`pwd`
> $CC -g -static test.C -o nobug -L. -lNope
>
> echo '==============='
> echo 'output of bug'
> ./bug
> echo 'output of nobug'
> ./nobug
>
>
> ----------------------------------------------------------------------
> produces (on solaris 2.6 with the binutils checked out this morning):
>
> -----------------
> output of bug
> Segmentation Fault - core dumped
> output of nobug
> a string of some size
> ------------------
>
> so the dynamicly linked executable crashes whereas the static one is
> fine.
>
> It crashes in _IO_str_overflow where
>
> 143 new_buf
> 144 = (char *) (*((_IO_strfile *)
> fp)->_s._allocate_buffer) (new_size);
>
>
>
> ((_IO_strfile *) fp)->_s is a *static* member of ostrstream and its
> data member point to point to undefined addresses - looks like another
> static constructor problem (if I may guess so ;-)
>
>
> (gdb) print ((_IO_strfile *) fp)->_s
> $3 = {_allocate_buffer = 0xef747848 <errno_funcp+138348>, _free_buffer
> = 0xef747
> 85c <errno_funcp+138368>}
>
>
> If I link the binary dynamicly I get (at the same breakpoint)
>
>
> (gdb) print ((_IO_strfile *) fp)->_s
> $1 = {_allocate_buffer = 0x178f8 <default_alloc(unsigned int)>,
> _free_buffer = 0
> x1790c <default_free(void *)>}
>
>
> egcs-1.1.2 (binutils 2.9.1) works for both the dynamic and the static
> case.
>
>
> Wolfgang
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-07 16:21 ` binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required H.J. Lu
@ 1999-08-07 18:12 ` Ian Lance Taylor
1999-08-07 18:17 ` H.J. Lu
0 siblings, 1 reply; 11+ messages in thread
From: Ian Lance Taylor @ 1999-08-07 18:12 UTC (permalink / raw)
To: hjl; +Cc: wwc, jj, binutils, egcs
Date: Sat, 7 Aug 1999 16:21:12 -0700 (PDT)
From: hjl@lucon.org (H.J. Lu)
I don't have an easy way to test problems on Solaris, so I'm waiting
for somebody to find the problem or produce a test case I can look at
(i.e., one which does not require building gcc or libstdc++ and which
does not require the Solaris startup files or libraries).
The bug has been in binutils for a while. Ian, Jakub, with "make check"
in ld, I got
FAIL: shared (non PIC)
FAIL: shared (non PIC, load offset)
FAIL: shared (PIC main, non PIC so)
This suggests a bug in handling relocations when generating shared
libraries.
I believe it is related to this bug. When
# g++ -G -o libNope.so libNope.C
is used to generate a DSO, -lstdc++ is passed to ld. If there is no
libstd++.so, libstdc++.a will be used. However, gnu ld doesn't do the
right thing on Solaris/Sparc. Before gnu ld is fixed, the workarounds
are:
1. Use the native ld. Or
2. Use
# gcc -G -o libNope.so libNope.C
instead of
# g++ -G -o libNope.so libNope.C
It is better than putting non PIC code in a shared library. Or
3. Fix g++ such that passing -lstdc++ to ld for -G/-shared when
building shared library only if --enable-shared is used. It doesn't
make any senses to include libstdc++.a for a DSO.
My preferences are 3, 2 and 1. I may work on a patch for 3 if everyone
thinks it is a good idea.
To me it makes perfect sense to include libstdc++.a in a shared
object. Anyhow, it seems silly to patch g++ merely because there is a
bug in ld. We should just fix the bug in ld. A bug like this can't
be hard to fix, especially since the GNU linker used to pass those
tests on Solaris.
Ian
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-07 18:12 ` Ian Lance Taylor
@ 1999-08-07 18:17 ` H.J. Lu
1999-08-07 18:21 ` Ian Lance Taylor
0 siblings, 1 reply; 11+ messages in thread
From: H.J. Lu @ 1999-08-07 18:17 UTC (permalink / raw)
To: Ian Lance Taylor; +Cc: jj, binutils
>
> The bug has been in binutils for a while. Ian, Jakub, with "make check"
> in ld, I got
>
> FAIL: shared (non PIC)
> FAIL: shared (non PIC, load offset)
> FAIL: shared (PIC main, non PIC so)
>
> This suggests a bug in handling relocations when generating shared
> libraries.
>
> To me it makes perfect sense to include libstdc++.a in a shared
> object. Anyhow, it seems silly to patch g++ merely because there is a
> bug in ld. We should just fix the bug in ld. A bug like this can't
> be hard to fix, especially since the GNU linker used to pass those
> tests on Solaris.
>
binutils 2.9.1.0.25, which is basically binutils 2.9.1, failed those
tests. I am no expert on Sparc. I don't know how it got broken. I
will give it a try when I find time.
--
H.J. Lu (hjl@gnu.org)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-07 18:17 ` H.J. Lu
@ 1999-08-07 18:21 ` Ian Lance Taylor
1999-08-07 23:02 ` H.J. Lu
0 siblings, 1 reply; 11+ messages in thread
From: Ian Lance Taylor @ 1999-08-07 18:21 UTC (permalink / raw)
To: hjl; +Cc: jj, binutils
Date: Sat, 7 Aug 1999 18:17:42 -0700 (PDT)
From: hjl@lucon.org (H.J. Lu)
> The bug has been in binutils for a while. Ian, Jakub, with "make check"
> in ld, I got
>
> FAIL: shared (non PIC)
> FAIL: shared (non PIC, load offset)
> FAIL: shared (PIC main, non PIC so)
>
> This suggests a bug in handling relocations when generating shared
> libraries.
>
> To me it makes perfect sense to include libstdc++.a in a shared
> object. Anyhow, it seems silly to patch g++ merely because there is a
> bug in ld. We should just fix the bug in ld. A bug like this can't
> be hard to fix, especially since the GNU linker used to pass those
> tests on Solaris.
binutils 2.9.1.0.25, which is basically binutils 2.9.1, failed those
tests. I am no expert on Sparc. I don't know how it got broken. I
will give it a try when I find time.
When I used to run tests on Solaris those tests passed (well, the load
offset test did not exist at that time, and I'm not concerned if it
doesn't pass).
Ian
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-07 18:21 ` Ian Lance Taylor
@ 1999-08-07 23:02 ` H.J. Lu
1999-08-08 8:26 ` Ian Lance Taylor
1999-08-09 1:52 ` [PATCH] " Jakub Jelinek
0 siblings, 2 replies; 11+ messages in thread
From: H.J. Lu @ 1999-08-07 23:02 UTC (permalink / raw)
To: Ian Lance Taylor; +Cc: jj, binutils, davem
>
> Date: Sat, 7 Aug 1999 18:17:42 -0700 (PDT)
> From: hjl@lucon.org (H.J. Lu)
>
> > The bug has been in binutils for a while. Ian, Jakub, with "make check"
> > in ld, I got
> >
> > FAIL: shared (non PIC)
> > FAIL: shared (non PIC, load offset)
> > FAIL: shared (PIC main, non PIC so)
> >
> > This suggests a bug in handling relocations when generating shared
> > libraries.
> >
> > To me it makes perfect sense to include libstdc++.a in a shared
> > object. Anyhow, it seems silly to patch g++ merely because there is a
> > bug in ld. We should just fix the bug in ld. A bug like this can't
> > be hard to fix, especially since the GNU linker used to pass those
> > tests on Solaris.
>
> binutils 2.9.1.0.25, which is basically binutils 2.9.1, failed those
> tests. I am no expert on Sparc. I don't know how it got broken. I
> will give it a try when I find time.
>
> When I used to run tests on Solaris those tests passed (well, the load
> offset test did not exist at that time, and I'm not concerned if it
> doesn't pass).
>
> Ian
>
This patch from David breaks none-PIC in DSO. David, can you tell
us why this patch is needed and could you please run "make check"
in ld on binutils 2.9.l.0.25 on Linux/Sparc?
Thanks.
--
H.J. Lu (hjl@gnu.org)
---
Fri Sep 4 13:54:23 1998 David Miller <davem@dm.cobaltmicro.com>
* elf32-sparc.c (elf32_sparc_relocate_section): Properly adjust
the addend of a dynamic relocation referencing a section.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
(sparc64_elf_finish_dynamic_symbol): Fix the PLT relocation
offset.
diff -upr binutils-2.9.1.0.22/bfd/elf64-sparc.c binutils-2.9.1.0.23/bfd/elf64-sparc.c
--- binutils-2.9.1.0.22/bfd/elf64-sparc.c Fri Dec 4 19:38:53 1998
+++ binutils-2.9.1.0.23/bfd/elf64-sparc.c Wed Mar 31 09:24:48 1999
@@ -1590,7 +1590,15 @@ sparc64_elf_relocate_section (output_bfd
}
outrel.r_info = ELF64_R_INFO (indx, r_type);
- outrel.r_addend = relocation + rel->r_addend;
+
+ /* For non-RELATIVE dynamic relocations, we keep the
+ same symbol, and so generally the same addend. But
+ we do need to adjust those relocations referencing
+ sections. */
+ outrel.r_addend = rel->r_addend;
+ if (r_symndx < symtab_hdr->sh_info
+ && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
+ outrel.r_addend += sec->output_offset + sym->st_value;
}
}
@@ -1904,6 +1912,7 @@ sparc64_elf_finish_dynamic_symbol (outpu
rela.r_offset = sparc64_elf_plt_ptr_offset (h->plt_offset, max);
rela.r_addend = -(sparc64_elf_plt_entry_offset (h->plt_offset) + 4);
}
+ rela.r_offset += (splt->output_section->vma + splt->output_offset);
rela.r_info = ELF64_R_INFO (h->dynindx, R_SPARC_JMP_SLOT);
bfd_elf64_swap_reloca_out (output_bfd, &rela,
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-07 23:02 ` H.J. Lu
@ 1999-08-08 8:26 ` Ian Lance Taylor
1999-08-08 9:08 ` H.J. Lu
1999-08-09 1:52 ` [PATCH] " Jakub Jelinek
1 sibling, 1 reply; 11+ messages in thread
From: Ian Lance Taylor @ 1999-08-08 8:26 UTC (permalink / raw)
To: hjl; +Cc: jj, binutils, davem
Date: Sat, 7 Aug 1999 23:02:31 -0700 (PDT)
From: hjl@lucon.org (H.J. Lu)
This patch from David breaks none-PIC in DSO. David, can you tell
us why this patch is needed and could you please run "make check"
in ld on binutils 2.9.l.0.25 on Linux/Sparc?
H.J., thanks for tracking down the problem.
David's patch to elf32-sparc.c is wrong. It presumes that we keep the
same symbol for a dynamic relocation. However, in the case in
question, we do not.
David's patch applies to a piece of code which is only executed if
there is no global symbol, or if we are not supposed to generate a
relocation against the global symbol. The code converts the
relocation to be against a section symbol.
So this comment is incorrect:
/* For non-RELATIVE dynamic relocations, we keep the
same symbol, and so generally the same addend. But
we do need to adjust those relocations referencing
sections. */
We do not keep the same symbol. Moreover, the actual code tests SYM
to see whether it is a section symbol, but at that point SYM is
irrelevant. At that point we will always use a section symbol.
My inclination is to simply revert the patch. However, I gather from
Jakub's message that that will break something on SPARC/GNU/Linux.
What will it break?
Ian
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-08 8:26 ` Ian Lance Taylor
@ 1999-08-08 9:08 ` H.J. Lu
1999-08-08 9:15 ` Ian Lance Taylor
0 siblings, 1 reply; 11+ messages in thread
From: H.J. Lu @ 1999-08-08 9:08 UTC (permalink / raw)
To: Ian Lance Taylor; +Cc: jj, davidm, binutils, GNU C Library
>
> Date: Sat, 7 Aug 1999 23:02:31 -0700 (PDT)
> From: hjl@lucon.org (H.J. Lu)
>
> This patch from David breaks none-PIC in DSO. David, can you tell
> us why this patch is needed and could you please run "make check"
> in ld on binutils 2.9.l.0.25 on Linux/Sparc?
>
> H.J., thanks for tracking down the problem.
>
> David's patch to elf32-sparc.c is wrong. It presumes that we keep the
> same symbol for a dynamic relocation. However, in the case in
> question, we do not.
>
> David's patch applies to a piece of code which is only executed if
> there is no global symbol, or if we are not supposed to generate a
> relocation against the global symbol. The code converts the
> relocation to be against a section symbol.
>
> So this comment is incorrect:
>
> /* For non-RELATIVE dynamic relocations, we keep the
> same symbol, and so generally the same addend. But
> we do need to adjust those relocations referencing
> sections. */
>
> We do not keep the same symbol. Moreover, the actual code tests SYM
> to see whether it is a section symbol, but at that point SYM is
> irrelevant. At that point we will always use a section symbol.
>
> My inclination is to simply revert the patch. However, I gather from
> Jakub's message that that will break something on SPARC/GNU/Linux.
> What will it break?
>
If it is true, I tend to believe it is a dynamic linker bug in glibc
since there is no problem with Solaris. I suggest we revert the patch
in bfd and deal with it in the glibc dynamic linker.
--
H.J. Lu (hjl@gnu.org)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-08 9:08 ` H.J. Lu
@ 1999-08-08 9:15 ` Ian Lance Taylor
0 siblings, 0 replies; 11+ messages in thread
From: Ian Lance Taylor @ 1999-08-08 9:15 UTC (permalink / raw)
To: hjl; +Cc: jj, davidm, binutils, libc-hacker
Date: Sun, 8 Aug 1999 09:08:13 -0700 (PDT)
From: hjl@lucon.org (H.J. Lu)
> My inclination is to simply revert the patch. However, I gather from
> Jakub's message that that will break something on SPARC/GNU/Linux.
> What will it break?
If it is true, I tend to believe it is a dynamic linker bug in glibc
since there is no problem with Solaris. I suggest we revert the patch
in bfd and deal with it in the glibc dynamic linker.
As always, I think that before we take any action, we should figure
out what the actual problem is. What's the rush?
It's possible that the original linker code is buggy in a manner which
arises on GNU/Linux but not on Solaris. Certainly something needs to
be changed, but since we don't yet know what the problem is (at least
I don't) we don't yet know for sure whether we have to change the
binutils or glibc.
Ian
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-07 23:02 ` H.J. Lu
1999-08-08 8:26 ` Ian Lance Taylor
@ 1999-08-09 1:52 ` Jakub Jelinek
1999-08-09 8:08 ` Ian Lance Taylor
1 sibling, 1 reply; 11+ messages in thread
From: Jakub Jelinek @ 1999-08-09 1:52 UTC (permalink / raw)
To: H.J. Lu; +Cc: Ian Lance Taylor, binutils, davem
>
> This patch from David breaks none-PIC in DSO. David, can you tell
> us why this patch is needed and could you please run "make check"
> in ld on binutils 2.9.l.0.25 on Linux/Sparc?
Ok, I believe it was because of the glibc 2.0.x dynamic linker bug, because
glibc 2.1.1 and glibc 2.1.90 require that change to be back out (well, the
finish_dynamic_symbol should stay), otherwise things dump core.
glibc 2.1.x+ dl-machine.h (example for sparc32) looks like:
const Elf32_Sym *const refsym = sym;
Elf32_Addr value;
if (sym->st_shndx != SHN_UNDEF &&
ELF32_ST_BIND (sym->st_info) == STB_LOCAL)
value = map->l_addr;
else
{
value = RESOLVE (&sym, version, ELF32_R_TYPE (reloc->r_info));
if (sym)
value += sym->st_value;
}
value += reloc->r_addend; /* Assume copy relocs have zero addend. */
...
while glibc 2.0.x reads as:
const int r_type = ELF32_R_TYPE (reloc->r_info);
Elf32_Addr value;
value = RESOLVE (&sym, (r_type == R_SPARC_COPY ? DL_LOOKUP_NOEXEC
: r_type == R_SPARC_JMP_SLOT ? DL_LOOKUP_NOPLT
: 0));
if (sym)
value += sym->st_value;
value += reloc->r_addend; /* Assume copy relocs have zero addend. */
...
In fact, glibc 2.0.x had sparc-linux support even more broken, RedHat
shipped ~450k of SPARC patches for it and the dl-machine.h buggy code was in
the patch.
1999-08-09 Jakub Jelinek <jj@ultra.linux.cz>
* elf64-sparc.c (sparc64_elf_relocate_section): Back out part of the
Sep, 4th, 1998 change. glibc 2.0.x dynamic linker had bug, not
binutils.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
--- elf32-sparc.c.jj Fri Jul 23 15:31:15 1999
+++ elf32-sparc.c Mon Aug 9 10:05:49 1999
@@ -1475,15 +1475,7 @@ elf32_sparc_relocate_section (output_bfd
}
outrel.r_info = ELF32_R_INFO (indx, r_type);
-
- /* For non-RELATIVE dynamic relocations, we keep the
- same symbol, and so generally the same addend. But
- we do need to adjust those relocations referencing
- sections. */
- outrel.r_addend = rel->r_addend;
- if (r_symndx < symtab_hdr->sh_info
- && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
- outrel.r_addend += sec->output_offset+sym->st_value;
+ outrel.r_addend = relocation + rel->r_addend;
}
}
--- elf64-sparc.c Mon Aug 2 09:39:54 1999
+++ elf64-sparc.c Mon Aug 9 10:06:16 1999
@@ -2249,15 +2249,7 @@ sparc64_elf_relocate_section (output_bfd
ELF64_R_TYPE_INFO (
ELF64_R_TYPE_DATA (rel->r_info),
r_type));
-
- /* For non-RELATIVE dynamic relocations, we keep the
- same symbol, and so generally the same addend. But
- we do need to adjust those relocations referencing
- sections. */
- outrel.r_addend = rel->r_addend;
- if (r_symndx < symtab_hdr->sh_info
- && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
- outrel.r_addend += sec->output_offset+sym->st_value;
+ outrel.r_addend = relocation + rel->r_addend;
}
}
Cheers,
Jakub
___________________________________________________________________
Jakub Jelinek | jj@sunsite.mff.cuni.cz | http://sunsite.mff.cuni.cz
Administrator of SunSITE Czech Republic, MFF, Charles University
___________________________________________________________________
UltraLinux | http://ultra.linux.cz/ | http://ultra.penguin.cz/
Linux version 2.3.13 on a sparc64 machine (1343.49 BogoMips)
___________________________________________________________________
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-09 1:52 ` [PATCH] " Jakub Jelinek
@ 1999-08-09 8:08 ` Ian Lance Taylor
1999-08-09 8:38 ` Wolfgang Wander
0 siblings, 1 reply; 11+ messages in thread
From: Ian Lance Taylor @ 1999-08-09 8:08 UTC (permalink / raw)
To: jj; +Cc: hjl, binutils, davem, wwc
Date: Mon, 9 Aug 1999 10:53:03 +0200
From: Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
Ok, I believe it was because of the glibc 2.0.x dynamic linker bug, because
glibc 2.1.1 and glibc 2.1.90 require that change to be back out (well, the
finish_dynamic_symbol should stay), otherwise things dump core.
1999-08-09 Jakub Jelinek <jj@ultra.linux.cz>
* elf64-sparc.c (sparc64_elf_relocate_section): Back out part of the
Sep, 4th, 1998 change. glibc 2.0.x dynamic linker had bug, not
binutils.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
Thanks for looking into this. I checked in this patch.
Wolfgang, please let us know if there are any remaining problems on
Solaris.
Ian
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Re: binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required
1999-08-09 8:08 ` Ian Lance Taylor
@ 1999-08-09 8:38 ` Wolfgang Wander
0 siblings, 0 replies; 11+ messages in thread
From: Wolfgang Wander @ 1999-08-09 8:38 UTC (permalink / raw)
To: Ian Lance Taylor; +Cc: jj, hjl, binutils, davem, wwc
Ian Lance Taylor writes:
> Date: Mon, 9 Aug 1999 10:53:03 +0200
> From: Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
>
> Ok, I believe it was because of the glibc 2.0.x dynamic linker bug, because
> glibc 2.1.1 and glibc 2.1.90 require that change to be back out (well, the
> finish_dynamic_symbol should stay), otherwise things dump core.
>
> 1999-08-09 Jakub Jelinek <jj@ultra.linux.cz>
>
> * elf64-sparc.c (sparc64_elf_relocate_section): Back out part of the
> Sep, 4th, 1998 change. glibc 2.0.x dynamic linker had bug, not
> binutils.
> * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
>
> Thanks for looking into this. I checked in this patch.
>
> Wolfgang, please let us know if there are any remaining problems on
> Solaris.
Great - this does solve the problem with the static libstdc++ and
a dynamic user library.
Not that I understand why the glibc dynamic linker refers to our
solaris problem but I guess I don't have to.
Thanks!
Wolfgang
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~1999-08-09 8:38 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <14252.25683.4588.53797@gargle.gargle.HOWL>
1999-08-07 16:21 ` binutils 2.9.5.0.5 still trigger the last bug - static libstdc++ required H.J. Lu
1999-08-07 18:12 ` Ian Lance Taylor
1999-08-07 18:17 ` H.J. Lu
1999-08-07 18:21 ` Ian Lance Taylor
1999-08-07 23:02 ` H.J. Lu
1999-08-08 8:26 ` Ian Lance Taylor
1999-08-08 9:08 ` H.J. Lu
1999-08-08 9:15 ` Ian Lance Taylor
1999-08-09 1:52 ` [PATCH] " Jakub Jelinek
1999-08-09 8:08 ` Ian Lance Taylor
1999-08-09 8:38 ` Wolfgang Wander
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).