[Bug gas/3172] iwmmxt control registers not hanlded correctly

2006-09-11 Thread dr dot tomas at yahoo dot co dot uk

--- Additional Comments From dr dot tomas at yahoo dot co dot uk  
2006-09-11 07:58 ---
Sorry, but I have no desire to signup to yet another list just to post a patch.

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3172

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/3110] unsupported relocation type {R_SPARC_H44, R_SPARC_WDISP30, R_SPARC_64}

2006-09-11 Thread pluto at agmk dot net

--- Additional Comments From pluto at agmk dot net  2006-09-11 08:13 ---
works fine :)


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3110

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/3191] New: segmentation fault in read_unsigned_leb128()

2006-09-11 Thread pluto at agmk dot net
after fixing PR3186 i get another error during linkinig
a large shared c++ library (c.a. 48MB of object files).

ld: Dwarf Error: Could not find abbrev number 9690.
ld: Dwarf Error: DW_FORM_strp offset (30408704) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (33030144) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3499234816) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (7157505) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (570543872) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (30408704) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (33030144) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3808428125) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (10384129) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (4965376) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3808428125) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (10384129) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (4965376) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3474456726) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (1728053356) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (2835387911) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (318805511) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: Could not find abbrev number 4042.
ld: Dwarf Error: DW_FORM_strp offset (124846080) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (9832361) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (124846080) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (546063942) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3976294) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (1057063168) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3983721) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3976294) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (1057063168) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3983721) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: Could not find abbrev number 9187.
ld: Dwarf Error: Could not find abbrev number 4042.
ld: Dwarf Error: DW_FORM_strp offset (124846080) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (9832361) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (124846080) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (124846080) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: Could not find abbrev number 10708.
ld: Dwarf Error: DW_FORM_strp offset (1208156160) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (7854593) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (6580481) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (1247354116) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (2910144513) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (2910144513) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (2910144513) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (522588929) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3774939136) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (671089177) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (572850326) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (3609530624) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (187564032) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (9833273) greater than or equal 
to .debug_str size (211156).
ld: Dwarf Error: DW_FORM_strp offset (2569511) greater than or equal 
to .debug_str size (21115

[Bug gas/3172] iwmmxt control registers not hanlded correctly

2006-09-11 Thread nickc at redhat dot com

--- Additional Comments From nickc at redhat dot com  2006-09-11 14:28 
---
Hi Tomas,

  My apologese for the delay in looking at this bug.  Your patch is fine, so I 
have checked in in along with this ChangeLog entry.

Cheers
  Nick

gas/ChangeLog
2006-09-11  Tomas Frydrych  <[EMAIL PROTECTED]>

PR gas/3172
* config/tc-arm.c (parse_typed_reg_or_scalar): Accept wCg class
registers as a sub-class of wC registers.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://sourceware.org/bugzilla/show_bug.cgi?id=3172

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/3107] ld internal error ldlang.c 4272

2006-09-11 Thread nickc at redhat dot com

--- Additional Comments From nickc at redhat dot com  2006-09-11 14:31 
---
Hi Rus,

  The patch should apply to the current sources in the mainline of the CVS
repository.

Cheers
  Nick



-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3107

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/3110] unsupported relocation type {R_SPARC_H44, R_SPARC_WDISP30, R_SPARC_64}

2006-09-11 Thread nickc at redhat dot com

--- Additional Comments From nickc at redhat dot com  2006-09-11 14:41 
---
Patch checked in.z

-- 
   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED


http://sourceware.org/bugzilla/show_bug.cgi?id=3110

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/3110] unsupported relocation type {R_SPARC_H44, R_SPARC_WDISP30, R_SPARC_64}

2006-09-11 Thread pluto at agmk dot net

--- Additional Comments From pluto at agmk dot net  2006-09-11 14:56 ---
(In reply to comment #8)
> Patch checked in.z

thanks.

i have one more sparc64 issue. the sparc64-sun-solaris2.9-ld rejects
boost's static libraries with 'skipping incompatible...'.
as far i can see, the `nomachine` objects causes this linker error.

e.g. libboost_filesystem.a:

convenience.o:  ELF 64-bit MSB relocatable, SPARC V9
exception.o:ELF 64-bit MSB relocatable, no machine  <===
operations_posix_windows.o: ELF 64-bit MSB relocatable, SPARC V9
path_posix_windows.o:   ELF 64-bit MSB relocatable, SPARC V9


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3110

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/3110] unsupported relocation type {R_SPARC_H44, R_SPARC_WDISP30, R_SPARC_64}

2006-09-11 Thread pluto at agmk dot net

--- Additional Comments From pluto at agmk dot net  2006-09-11 15:02 ---
simple testcase:

$ sparc64-sun-solaris2.9-g++ -o /dev/null -Wl,--whole-archive 
libboost_filesystem.a
/local/devel/toolchain41/sparc64-sun-solaris2.9/lib/gcc/sparc64-sun-solaris2.9/4.1.2/../../../../sparc64-sun-solaris2.9/bin/ld:
 
libboost_filesystem.a(exception.o): Relocations in generic ELF (EM: 0)
(...)
libboost_filesystem.a(exception.o): could not read symbols: File in wrong 
format
collect2: ld returned 1 exit status


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3110

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


RE: Multiple setting of a symbol

2006-09-11 Thread Schwarz, Konrad
> From: Nick Clifton [mailto:[EMAIL PROTECTED] 

> > Specifically, given the code
> > 
> > my_variable:
> > .long X
> > X = 1
> > X = 2
> > 
> > the new version assembles the value 1 into my_variable, 
> while the old 
> > version assembles the value 2.
> 
> The problem with this is what should happen in more complex 
> situations. 
>   For example:
> 
>   .long X
>   X = 1
>   X = 2
>   .long X
>   X = 3
> 
> Now, should that first .long receive the value 2, as you 
> suggested in your example, or 3, as that is the last value 
> assigned to X ?  Also what value should be given to the 
> second .long ?  2, which was the value of X at the point in 
> the code when it was defined, or 3 ?

Setting the second definition to 2 and the first to 3 would be fine by
me.  The rule would be "use current values of symbols if assigned,
otherwise treat as an undefined reference".  Furthermore, it would be
quite natural to restrict use of an undefined reference to those
relocations that are allowed by the linker (e.g., "symbol + offset" with
"offset" fixed, i.e., known when processing the reference during the
"first pass").

It just seems much more useful when referencing an undefined symbol to
obtain the final rather than the initial value, and in fact, I think
this is what the old assembler did.

>.text
>.long X
>X = 1
>.data
>X = 2
>.long X
>.section "foo"
>X = 3
> 
> Does this make any difference to the values stored in the .long's ?

I do not see why it should.  X is an absolute symbol and therefore
resides in the absolute section, the fact that it is defined while other
sections are "current" is irrelevant.

In any case, the behavior should be clearly documented.

Regards,

Konrad Schwarz


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/3169] elfxx-ia64.c doesn't support @ltoff(@fptr(_DYNAMIC#))

2006-09-11 Thread wilson at specifix dot com

--- Additional Comments From wilson at specifix dot com  2006-09-11 20:26 
---
Subject: Re:  New: ld elf64-ia64.c segfault in set_fptr_entry

On Sun, 2006-09-03 at 10:36 +, tbm at cyrius dot com wrote:
> It fails both with Debian binutils 2.17 and current CVS HEAD.
> /gcc-lib/ia64-linux-gnu/3.3.6/../../../crti.o symbol.s.o
> /usr/bin/ld: BFD 2.17 Debian GNU/Linux assertion fail elf64-ia64.c:4874
> Segmentation fault

There is a bug in the source code.  It has
#pragma weak _DYNAMIC
void _DYNAMIC(void);
if ((&_DYNAMIC != __null) && (d = (Elf64_Dyn *) _DYNAMIC))
 ...process d as if it points to dynamic entries...

This won't work on IA-64, as taking the address of a function returns
the address of the function pointer.  You would then have to redirect
through the function pointer to get the actual function address you
want.  But to do so would be pointless.  It is better to declare
_DYNAMIC properly in the first place.  If you use this
  extern char _DYNAMIC[0];
then you won't get a linker segfault, and you will also get code that
has a chance of working.

The linker shouldn't be segfaulting of course though.  The linker bug
appears to be in allocate_fptr in bfd/el64-ia64.c.  This function
returns false in this case, as a
bfd_elf_link_record_local_dynamic_symbol call fails.  I didn't look into
this routine in detail, but this failure seems OK, as we can't make
_DYNAMIC a local symbol presumably.  The failure return result from
allocate_fptr gets lost though, as it is called from a hash table
traversal routine that throws away return values.  Thus no error is
emitted here, and no fptr section space is allocated.  When we
eventually try to generate the descriptor, we get the segfault as we are
writing as no space was ever allocated for it.

So the solution here seems to be to either fix the
elf64_ia64_dyn_sym_traverse function to return failure results, or else
emit the error in allocate_fptr directly.  The latter seems easier.

My problem at the moment now is that I'm not quite sure what the error
message should be.  Is there such a thing as a global dynamic symbol?
If so, maybe the error should be something like
  "can't resolve fptr reloc for global dynamic symbol"
Or maybe something more general like
  "invalid fptr reloc"
or
  "failed to allocate fptr reloc"
is more appropriate.


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3169

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/3191] segmentation fault in read_unsigned_leb128()

2006-09-11 Thread hjl at lucon dot org

--- Additional Comments From hjl at lucon dot org  2006-09-11 22:08 ---
If you can provide a testcase, I will look into it.

-- 
   What|Removed |Added

 CC||hjl at lucon dot org


http://sourceware.org/bugzilla/show_bug.cgi?id=3191

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/3169] elfxx-ia64.c doesn't support @ltoff(@fptr(_DYNAMIC#))

2006-09-11 Thread hjl at lucon dot org

--- Additional Comments From hjl at lucon dot org  2006-09-11 22:17 ---
I used

--- elf64-ia64.c2006-09-11 15:13:43.0 -0700
+++ elf64-ia64.c.new2006-09-07 16:12:39.0 -0700
@@ -3275,7 +3275,14 @@ allocate_fptr (dyn_i, data)
  if (!bfd_elf_link_record_local_dynamic_symbol
(x->info, h->root.u.def.section->owner,
 global_sym_index (h)))
-   return FALSE;
+   {
+ /* Something is really wrong. If we continue, we will
+run into more problems later.  */
+ (*_bfd_error_handler)
+   (_("%B: failed to record local dynamic symbol `%s'"),
+h->root.u.def.section->owner, h->root.root.string);
+ abort ();
+   }
}

  dyn_i->want_fptr = 0;

However, it doesn't work for this:
[EMAIL PROTECTED] 3169]$ cat foo.s
.hidden __bss_start
.text
.proc   foo#
.global foo#
foo#:
addl [EMAIL PROTECTED](@fptr(_DYNAMIC#)),gp
.endp foo
[EMAIL PROTECTED] 3169]$ cat bar.s
.text
.proc bar#
bar:
//  addl r14 = @ltoff(@fptr(foo#)), gp
.endp bar#

[EMAIL PROTECTED] 3169]$ make
./as -x -o bar.o bar.s
./as -x -o foo.o foo.s
./ld -o libfoo.so -shared bar.o foo.o
make: *** [libfoo.so] Segmentation fault
make: *** Deleting file `libfoo.so'
[EMAIL PROTECTED] 3169]$ gdb ld
GNU gdb 6.5.50.20060816-cvs
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu"...
Using host libthread_db library "/lib64/libthread_db.so.1".
(gdb) r  -o libfoo.so -shared bar.o foo.o
Starting program: /export/home/hjl/bugs/binutils/3169/ld -o libfoo.so -shared
bar.o foo.o

Program received signal SIGSEGV, Segmentation fault.
0x00436c1c in global_sym_index (h=0x6e5960) at elf64-ia64.c:3239
3239  for (p = elf_sym_hashes (obj); *p != h; ++p)
(gdb) p obj
No symbol "obj" in current context.
(gdb) p ((h->root.u.def.section->owner) -> tdata.elf_obj_data)->sym_hashes
$1 = (struct elf_link_hash_entry **) 0x0
(gdb)


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3169

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils