[Bug ld/17068] --as-needed and --start-group/--end-group interact in strange ways if .so files are mentioned in --start-group/--end-group

2014-07-01 Thread amodra at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=17068

Alan Modra  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at sourceware dot org   |amodra at gmail dot com

--- Comment #1 from Alan Modra  ---
Created attachment 7669
  --> https://sourceware.org/bugzilla/attachment.cgi?id=7669&action=edit
possible fix

I think the attached fix ought to cure this problem.  Please test it!

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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


[Bug binutils/16698] BFD (GNU Binutils) 2.24 assertion fail elf32-arm.c:12387

2014-07-01 Thread maillist-gdb at barfooze dot de
https://sourceware.org/bugzilla/show_bug.cgi?id=16698

--- Comment #13 from maillist-gdb at barfooze dot de ---
Created attachment 7670
  --> https://sourceware.org/bugzilla/attachment.cgi?id=7670&action=edit
testcase including all object files and stripped down libc.a

savefile.c in the testcase uses both stdin and fflush - i wonder how i could
miss that.

using -Wl,-M i hunted down all referenced objects files and put them into a
mini libc.a, and added musl's crt files.

Nick, please see attached tarball, it contains everything needed to reproduce
the issue - the only external thing getting pulled in is libgcc.

the linker command used by gcc was extracted via strace, simplified and put
into link.sh.

the file test.elf.wlm contains the output of -Wl,-M.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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


[Bug binutils/16698] BFD (GNU Binutils) 2.24 assertion fail elf32-arm.c:12387

2014-07-01 Thread maillist-gdb at barfooze dot de
https://sourceware.org/bugzilla/show_bug.cgi?id=16698

--- Comment #14 from maillist-gdb at barfooze dot de ---
Created attachment 7671
  --> https://sourceware.org/bugzilla/attachment.cgi?id=7671&action=edit
standalone testcase including reduced libc sources

while trying to reduce the libc sources that got linked in, i found that the
assertion is only triggered if libc is compiled with "-g".

here is another testcase including delta-reduced libc sources (+ makefile
changes).

this one still triggers in stdin.o, while the "real" object files in my
previous comment raise a total of 3 assertions in stdin.o and fflush.o.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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


[Bug libc/9843] relocation R_386_GOTOFF against undefined hidden symbol '_begin' can not be used when making a shared object

2014-07-01 Thread fweimer at redhat dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=9843

Florian Weimer  changed:

   What|Removed |Added

  Flags||security-

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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


[Bug binutils/16698] BFD (GNU Binutils) 2.24 assertion fail elf32-arm.c:12387

2014-07-01 Thread maillist-gdb at barfooze dot de
https://sourceware.org/bugzilla/show_bug.cgi?id=16698

maillist-gdb at barfooze dot de changed:

   What|Removed |Added

   Attachment #7638|0   |1
is obsolete||
   Attachment #7663|0   |1
is obsolete||
   Attachment #7670|0   |1
is obsolete||
   Attachment #7671|0   |1
is obsolete||

--- Comment #15 from maillist-gdb at barfooze dot de ---
Created attachment 7672
  --> https://sourceware.org/bugzilla/attachment.cgi?id=7672&action=edit
manually reduced testcase to the bare minimum

i manually reduced libc/stdin.c to the following

typedef struct _IO_FILE FILE;
struct _IO_FILE { int lock; };
static FILE f = {  .lock = -1};
FILE *const (stdin) = &f;

this construct, compiled with -g triggers the bug in another object that
references it in an unused function when linked with -s --gc-sections...

for example:

 typedef struct _IO_FILE FILE;
extern FILE *const stdin;

typedef struct pcap pcap_t;
struct pcap_sf {  FILE *rfile;  };
struct pcap {   struct pcap_sf sf;  };

static void unused_func_referencing_stdin(pcap_t *p) {
   if (p->sf.rfile != (stdin))   (void)fclose(p->sf.rfile);
}

int pcap_loop(pcap_t *p, int cnt, void* callback, char *user) {   }


i reduced the testcase again to the bare minimum, it's just 2 files and 2 libc
files now with a total of about 20 lines

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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