Message ID | 20171106005328.GB84093@humpty.home.comstyle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 6 November 2017 at 00:53, 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..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
On Mon, Nov 06, 2017 at 11:37:45AM +0000, Peter Maydell wrote: > On 6 November 2017 at 00:53, 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..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.
On 7 November 2017 at 23:51, Brad Smith <brad@comstyle.com> wrote: > On Mon, Nov 06, 2017 at 11:37:45AM +0000, Peter Maydell wrote: >> On 6 November 2017 at 00:53, 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..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
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"
OpenBSD/i386 uses elf_i386_obsd for the emulation linker. Signed-off-by: Brad Smith <brad@comstyle.com>