|
Message-ID: <20141119205635.GO22465@brightrain.aerifal.cx> Date: Wed, 19 Nov 2014 15:56:35 -0500 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: webkitfltk segfaults in do_relocs On Wed, Nov 19, 2014 at 12:20:02PM -0800, Isaac Dunham wrote: > On Wed, Nov 19, 2014 at 02:58:24PM -0500, Rich Felker wrote: > > On Wed, Nov 19, 2014 at 11:48:28AM -0800, Isaac Dunham wrote: > > > On Wed, Nov 19, 2014 at 02:13:11PM -0500, Rich Felker wrote: > > > > It looks like it's trying to apply a relocation to a read-only part of > > > > the mapping. Could you provide the output of readelf -a testapp? That > > > > would let me get an idea what's going on. It's probably too big to > > > > send as an attachment raw but compressing it with gzip will probably > > > > make it okay, or you could just send a link to a pastebin or similar > > > > (sprunge.us preferred). > > > That's 31.1 MB, over four and a half gzipped, 2.1 MB XZ-compressed. > > > > > > Not sure how to proceed. > > > > Uhg. Do you have anywhere you can upload it and provide a link? > > > > Rich > > > > https://www.dropbox.com/s/2e9f91zclw5liei/wkfltk-readelf-a.xz?dl=1 > (unfortunately, you may need a browser). Got it. The line number in your original report seems to be off by a bit (it points to TLSDESC related cases) but I've found the offending relocation(s): 0083deea 0000c402 R_386_PC32 00000000 exp 0083df03 00010a02 R_386_PC32 00000000 log 0083df1c 00030502 R_386_PC32 00000000 floor 0083df35 00024502 R_386_PC32 00000000 ceil I have no idea why the linker is emitting these. It should have resolved them at ld time to PLT entries in the main program's PLT, but maybe since you're building as PIE (this is defautl on Alpine) that doesn't happen (this would be a linker bug, IMO). If it were going to do this (leave the relocations in the output), it should mark the program as DT_TEXTREL (having textrels), but this is probably suppressed for PIE because it's not supposed to happen. My best guess as to what's triggering the problem is that there's some nasty asm or other hacks that are not PIE-compatible somewhere in the program. It's also possible that you're pulling in static libraries (which would not be PIE-compatible) due to not having the dynamic version of a needed library installed. Finding which .o or .a file these references to exp/log/floor/ceil are coming from would help narrow down the source of the problem. Alternatively you could try building as non-PIE. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.