seabios ("vmm-firmware") and gcc 8

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

seabios ("vmm-firmware") and gcc 8

Stuart Henderson
17:08 < joshe> huh, someone in #coreboot saying they were having merely a small problem building coreboot on openbsd

so I thought that was interesting. Turns out that seabios does build
ok on OpenBSD, and works ok in initial testing, with gcc 8 (as long as
it's using ld.bfd not LLD). (It does fail with gcc 4).

This is one of only 3 ports setup to use base-gcc on clang arches,
the others:

devel/arm-elf BROKEN since 2015
devel/cil
sysutils/firmware/vmm

Actually switching this in the ports tree at the moment is a bit
awkward because it will conflict with ports using gcc 4 from ports
but the diff looks like this if anyone is interested in testing.

Generally I'd like to push ports to gcc 8. We already use it on
aarch64. It's the wrong time to switch others now, but maybe soon
after 6.5 is done .. Any thoughts on that?

Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/firmware/vmm/Makefile,v
retrieving revision 1.19
diff -u -p -r1.19 Makefile
--- Makefile 19 Jan 2019 12:34:34 -0000 1.19
+++ Makefile 8 Mar 2019 17:26:54 -0000
@@ -1,25 +1,20 @@
 # $OpenBSD: Makefile,v 1.19 2019/01/19 12:34:34 sthen Exp $
 
 ONLY_FOR_ARCHS= amd64 i386
+
 USE_LLD= No
+COMPILER= ports-gcc
+COMPILER_LANGS= c
+MODGCC4_VERSION= 8
 
 # XXX errors with clang - same with/without integrated assembler
 # error: invalid output size for constraint '=Qi'
 # error: invalid input size for constraint 'Q'
 # etc. in various files, coming from __GET_VAR / __SET_VAR.
 #
-# XXX errors with ports-gcc and ld.bfd -
-# ld: Relocatable linking with relocations from format elf64-x86-64 (out/ccode16.o) to format elf32-i386 (out/code16.o) is not supported
-#
 # XXX fails self-check with LLD -
 # The version of LD on this system (ld -nopie -znorelro) does not properly handle
 # alignments.  As a result, this project can not be built.
-#
-# FreeBSD are building this with ld.bfd and GCC (currently 8, but many versions
-# previously) with apparently no special patches.
-# https://svnweb.freebsd.org/ports/head/misc/seabios/Makefile?view=markup
-
-CC = /usr/bin/gcc
 
 FW_DRIVER= vmm
 FW_VER= 1.11.0

Reply | Threaded
Open this post in threaded view
|

Re: seabios ("vmm-firmware") and gcc 8

Brian Callahan-3


On 3/8/19 12:39 PM, Stuart Henderson wrote:

> 17:08 < joshe> huh, someone in #coreboot saying they were having merely a small problem building coreboot on openbsd
>
> so I thought that was interesting. Turns out that seabios does build
> ok on OpenBSD, and works ok in initial testing, with gcc 8 (as long as
> it's using ld.bfd not LLD). (It does fail with gcc 4).
>
> This is one of only 3 ports setup to use base-gcc on clang arches,
> the others:
>
> devel/arm-elf BROKEN since 2015
> devel/cil
> sysutils/firmware/vmm
>
> Actually switching this in the ports tree at the moment is a bit
> awkward because it will conflict with ports using gcc 4 from ports
> but the diff looks like this if anyone is interested in testing.
>
> Generally I'd like to push ports to gcc 8. We already use it on
> aarch64. It's the wrong time to switch others now, but maybe soon
> after 6.5 is done .. Any thoughts on that?

cwen and I just had a conversation about doing this at least for macppc.
So +1 from me soon after 6.5

~Brian

> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/Makefile,v
> retrieving revision 1.19
> diff -u -p -r1.19 Makefile
> --- Makefile 19 Jan 2019 12:34:34 -0000 1.19
> +++ Makefile 8 Mar 2019 17:26:54 -0000
> @@ -1,25 +1,20 @@
>   # $OpenBSD: Makefile,v 1.19 2019/01/19 12:34:34 sthen Exp $
>  
>   ONLY_FOR_ARCHS= amd64 i386
> +
>   USE_LLD= No
> +COMPILER= ports-gcc
> +COMPILER_LANGS= c
> +MODGCC4_VERSION= 8
>  
>   # XXX errors with clang - same with/without integrated assembler
>   # error: invalid output size for constraint '=Qi'
>   # error: invalid input size for constraint 'Q'
>   # etc. in various files, coming from __GET_VAR / __SET_VAR.
>   #
> -# XXX errors with ports-gcc and ld.bfd -
> -# ld: Relocatable linking with relocations from format elf64-x86-64 (out/ccode16.o) to format elf32-i386 (out/code16.o) is not supported
> -#
>   # XXX fails self-check with LLD -
>   # The version of LD on this system (ld -nopie -znorelro) does not properly handle
>   # alignments.  As a result, this project can not be built.
> -#
> -# FreeBSD are building this with ld.bfd and GCC (currently 8, but many versions
> -# previously) with apparently no special patches.
> -# https://svnweb.freebsd.org/ports/head/misc/seabios/Makefile?view=markup
> -
> -CC = /usr/bin/gcc
>  
>   FW_DRIVER= vmm
>   FW_VER= 1.11.0
>

Reply | Threaded
Open this post in threaded view
|

Re: seabios ("vmm-firmware") and gcc 8

Mike Larkin-2
In reply to this post by Stuart Henderson
On Fri, Mar 08, 2019 at 05:39:04PM +0000, Stuart Henderson wrote:

> 17:08 < joshe> huh, someone in #coreboot saying they were having merely a small problem building coreboot on openbsd
>
> so I thought that was interesting. Turns out that seabios does build
> ok on OpenBSD, and works ok in initial testing, with gcc 8 (as long as
> it's using ld.bfd not LLD). (It does fail with gcc 4).
>
> This is one of only 3 ports setup to use base-gcc on clang arches,
> the others:
>
> devel/arm-elf BROKEN since 2015
> devel/cil
> sysutils/firmware/vmm
>
> Actually switching this in the ports tree at the moment is a bit
> awkward because it will conflict with ports using gcc 4 from ports
> but the diff looks like this if anyone is interested in testing.
>
> Generally I'd like to push ports to gcc 8. We already use it on
> aarch64. It's the wrong time to switch others now, but maybe soon
> after 6.5 is done .. Any thoughts on that?
>

WRT seabios, as long as it works, I'm ok with moving it to whatever version
of gcc you think is best. Thanks!

> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/Makefile,v
> retrieving revision 1.19
> diff -u -p -r1.19 Makefile
> --- Makefile 19 Jan 2019 12:34:34 -0000 1.19
> +++ Makefile 8 Mar 2019 17:26:54 -0000
> @@ -1,25 +1,20 @@
>  # $OpenBSD: Makefile,v 1.19 2019/01/19 12:34:34 sthen Exp $
>  
>  ONLY_FOR_ARCHS= amd64 i386
> +
>  USE_LLD= No
> +COMPILER= ports-gcc
> +COMPILER_LANGS= c
> +MODGCC4_VERSION= 8
>  
>  # XXX errors with clang - same with/without integrated assembler
>  # error: invalid output size for constraint '=Qi'
>  # error: invalid input size for constraint 'Q'
>  # etc. in various files, coming from __GET_VAR / __SET_VAR.
>  #
> -# XXX errors with ports-gcc and ld.bfd -
> -# ld: Relocatable linking with relocations from format elf64-x86-64 (out/ccode16.o) to format elf32-i386 (out/code16.o) is not supported
> -#
>  # XXX fails self-check with LLD -
>  # The version of LD on this system (ld -nopie -znorelro) does not properly handle
>  # alignments.  As a result, this project can not be built.
> -#
> -# FreeBSD are building this with ld.bfd and GCC (currently 8, but many versions
> -# previously) with apparently no special patches.
> -# https://svnweb.freebsd.org/ports/head/misc/seabios/Makefile?view=markup
> -
> -CC = /usr/bin/gcc
>  
>  FW_DRIVER= vmm
>  FW_VER= 1.11.0
>