Re: [Qemu-devel] [PATCH] configure: Deal with OpenBSD/i386 emulation linker
On 7 November 2017 at 23:51, Brad Smithwrote: > On Mon, Nov 06, 2017 at 11:37:45AM +, Peter Maydell wrote: >> On 6 November 2017 at 00:53, Brad Smith wrote: >> > OpenBSD/i386 uses elf_i386_obsd for the emulation linker. >> > >> > Signed-off-by: Brad Smith >> > >> > >> > diff --git a/configure b/configure >> > index dd73cce62f..02799d38ac 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 uses 'elf_i386'; FreeBSD uses the _fbsd variant; >> > +# OpenBSD 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" >> >> My OpenBSD/x86-64's ld supports both "elf_i386" and "elf_i386_obsd" -- >> which should we be using in this case? With your change we'll >> still prefer elf_i386 if the linker handles both. > > I sent a second rev of the diff with slightly tweaked comment. > > OpenBSD/amd64 uses elf_i386. OpenBSD/i386 uses elf_i386_obsd. > >> Do you know what the difference between the two is? > > No. ...then how do we know that elf_i386 is the right one to use for 32-bit linking when checking on an OpenBSD/amd64 system? thanks -- PMM
Re: [Qemu-devel] [PATCH] configure: Deal with OpenBSD/i386 emulation linker
On Mon, Nov 06, 2017 at 11:37:45AM +, Peter Maydell wrote: > On 6 November 2017 at 00:53, Brad Smithwrote: > > OpenBSD/i386 uses elf_i386_obsd for the emulation linker. > > > > Signed-off-by: Brad Smith > > > > > > diff --git a/configure b/configure > > index dd73cce62f..02799d38ac 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 uses 'elf_i386'; FreeBSD uses the _fbsd variant; > > +# OpenBSD 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" > > My OpenBSD/x86-64's ld supports both "elf_i386" and "elf_i386_obsd" -- > which should we be using in this case? With your change we'll > still prefer elf_i386 if the linker handles both. I sent a second rev of the diff with slightly tweaked comment. OpenBSD/amd64 uses elf_i386. OpenBSD/i386 uses elf_i386_obsd. > Do you know what the difference between the two is? No.
Re: [Qemu-devel] [PATCH] configure: Deal with OpenBSD/i386 emulation linker
On 6 November 2017 at 00:53, Brad Smithwrote: > OpenBSD/i386 uses elf_i386_obsd for the emulation linker. > > Signed-off-by: Brad Smith > > > diff --git a/configure b/configure > index dd73cce62f..02799d38ac 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 uses 'elf_i386'; FreeBSD uses the _fbsd variant; > +# OpenBSD 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" My OpenBSD/x86-64's ld supports both "elf_i386" and "elf_i386_obsd" -- which should we be using in this case? With your change we'll still prefer elf_i386 if the linker handles both. Do you know what the difference between the two is? thanks -- PMM