Message ID | 20171107234608.GA395@humpty.home.comstyle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 7 November 2017 at 23:46, Brad Smith <brad@comstyle.com> wrote: > OpenBSD/i386 uses elf_i386_obsd for the emulation linker. > > Signed-off-by: Brad Smith <brad@comstyle.com> > > > diff --git a/configure b/configure > index dd73cce62f..c9dd747283 100755 > --- a/configure > +++ b/configure > @@ -5159,9 +5159,9 @@ if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \ > "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \ > "$softmmu" = yes ; then > # Different host OS linkers have different ideas about the name of the ELF > - # emulation. Linux and OpenBSD use 'elf_i386'; FreeBSD uses the _fbsd > - # variant; and Windows uses i386pe. > - for emu in elf_i386 elf_i386_fbsd i386pe; do > + # emulation. Linux and OpenBSD/amd64 use 'elf_i386'; FreeBSD uses the _fbsd > + # variant; OpenBSD/i386 uses the _obsd variant; and Windows uses i386pe. > + for emu in elf_i386 elf_i386_fbsd elf_i386_obsd i386pe; do > if "$ld" -verbose 2>&1 | grep -q "^[[:space:]]*$emu[[:space:]]*$"; then > ld_i386_emulation="$emu" > roms="optionrom" Hi; just a reminder that this patch is still blocked on getting an answer to why the correct answer for OpenBSD/x86_64 is "elf_i386" and not "elf_i386_obsd"... thanks -- PMM
On 20 November 2017 at 13:46, Peter Maydell <peter.maydell@linaro.org> wrote: > On 7 November 2017 at 23:46, Brad Smith <brad@comstyle.com> wrote: >> OpenBSD/i386 uses elf_i386_obsd for the emulation linker. >> >> Signed-off-by: Brad Smith <brad@comstyle.com> >> >> >> diff --git a/configure b/configure >> index dd73cce62f..c9dd747283 100755 >> --- a/configure >> +++ b/configure >> @@ -5159,9 +5159,9 @@ if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \ >> "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \ >> "$softmmu" = yes ; then >> # Different host OS linkers have different ideas about the name of the ELF >> - # emulation. Linux and OpenBSD use 'elf_i386'; FreeBSD uses the _fbsd >> - # variant; and Windows uses i386pe. >> - for emu in elf_i386 elf_i386_fbsd i386pe; do >> + # emulation. Linux and OpenBSD/amd64 use 'elf_i386'; FreeBSD uses the _fbsd >> + # variant; OpenBSD/i386 uses the _obsd variant; and Windows uses i386pe. >> + for emu in elf_i386 elf_i386_fbsd elf_i386_obsd i386pe; do >> if "$ld" -verbose 2>&1 | grep -q "^[[:space:]]*$emu[[:space:]]*$"; then >> ld_i386_emulation="$emu" >> roms="optionrom" > > Hi; just a reminder that this patch is still blocked on getting > an answer to why the correct answer for OpenBSD/x86_64 is > "elf_i386" and not "elf_i386_obsd"... I went and looked through the binutils source, and as far as I can tell the _obsd variant sets some extra defaults which we probably don't care about for ROM images, and in practice the binary blobs are the same for both if run on openbsd/x86_64. So I think that the current behaviour (use elf_i386 in preference to elf_i386_obsd) is the right thing, because the binaries we're creating are not specifically openbsd binaries. So I've applied this patch to master. thanks -- PMM
diff --git a/configure b/configure index dd73cce62f..c9dd747283 100755 --- a/configure +++ b/configure @@ -5159,9 +5159,9 @@ if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \ "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \ "$softmmu" = yes ; then # Different host OS linkers have different ideas about the name of the ELF - # emulation. Linux and OpenBSD use 'elf_i386'; FreeBSD uses the _fbsd - # variant; and Windows uses i386pe. - for emu in elf_i386 elf_i386_fbsd i386pe; do + # emulation. Linux and OpenBSD/amd64 use 'elf_i386'; FreeBSD uses the _fbsd + # variant; OpenBSD/i386 uses the _obsd variant; and Windows uses i386pe. + for emu in elf_i386 elf_i386_fbsd elf_i386_obsd i386pe; do if "$ld" -verbose 2>&1 | grep -q "^[[:space:]]*$emu[[:space:]]*$"; then ld_i386_emulation="$emu" roms="optionrom"
OpenBSD/i386 uses elf_i386_obsd for the emulation linker. Signed-off-by: Brad Smith <brad@comstyle.com>