Re: [Qemu-devel] [PATCH] configure: Deal with OpenBSD/i386 emulation linker

2017-11-09 Thread Peter Maydell
On 7 November 2017 at 23:51, Brad Smith  wrote:
> 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

2017-11-07 Thread Brad Smith
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.



Re: [Qemu-devel] [PATCH] configure: Deal with OpenBSD/i386 emulation linker

2017-11-06 Thread Peter Maydell
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.

Do you know what the difference between the two is?

thanks
-- PMM