On Mon, Sep 26, 2016 at 11:00 AM, John Baldwin <j...@freebsd.org> wrote:
> On Saturday, September 24, 2016 02:56:05 PM Warner Losh wrote:
>> On Fri, Sep 23, 2016 at 4:17 PM, Allan Jude <allanj...@freebsd.org> wrote:
>> > On 09/03/16 11:26 AM, Warner Losh wrote:
>> >> Author: imp
>> >> Date: Sat Sep  3 15:26:28 2016
>> >> New Revision: 305353
>> >> URL: https://svnweb.freebsd.org/changeset/base/305353
>> >>
>> >> Log:
>> >>   Don't use -N to set the OMAGIC with data and text writeable and data
>> >>   not page aligned. To do this, use the ld script gnu ld installs on my
>> >>   system.
>> >>
>> >>   This is imperfect: LDFLAGS_BIN and LD_FLAGS_BIN describe different
>> >>   things. The loader script could be better named and take into account
>> >>   other architectures. And having two different mechanisms to do
>> >>   basically the same thing needs study. However, it's blocking forward
>> >>   progress on lld, so I'll work in parallel to sort these out.
>> >>
>> >>   Differential Revision: https://reviews.freebsd.org/D7409
>> >>   Reviewed by: emaste
>> >>
>> >
>> > This breaks booting on my Lenovo laptop. The BTX client crashes and
>> > dumps the registers.
>> >
>> > Reverting this commit solved it.
>> >
>> > Is there something I can do to help investigate this?
>>
>> I assume you bisected all boot loader changes and it fails across this
>> commit? If not, that's the first step.
>>
>> If so, perhaps the place to start is with the dump?
>
> The dump is a good place to start, but it would also be useful to know
>
> 1) Which stage dies (e.g. can you get into the gptboot/boot2 prompt meaning
>    it it is probably btxldr.S dying trying to parse a.out header from
>    /boot/loader vs are you dying before that point meaning it is in boot1.S
>    or gptldr.S)?

Yes. This is absolutely critical. Until we know what dies, what the
trace backs are, what options were in effect and how the binaries were
broken there's little more that I can do because it works for me
everywhere I've tried it.

> 2) Once we know which stage, it would be good to compare the a.out headers
>    and possibly the contents of the relevant binaries.  The aforementioned
>    .S files all parse the a.out header in assembly as well as the BTX
>    header (they assume that BTX itself is present in the bits loaded from
>    disk immediately followed by the binary header).  That code isn't very
>    flexible and it doesn't seem far fetched for this change to break it.

I just wonder why it works on the amd64 servers and laptops, the i386
laptops and in qemu for me,  but fails for the OP. If it broke a.out,
I contend it would break for everybody since a.out headers are 'hit
dinosaur over the head' level of complexity and subtly.  While I don't
doubt there's a problem, I suspect it is very specific to a particular
set of laptops that were on the edge before and this kicks us over the
edge just enough to stomp on some area that was protected before.

Warner
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to