Re: devel/avr32 -fno-common fixes
Christian Weisgerber writes: > The GNU toolchain explicitly avoids common variables. Whoever > hacked up this derived version didn't understand that. > > * binutils: Since linkrelax is already defined as a global variable, > it is already initialized to 0, so we can simply drop this > initialization. > > * gcc-bootstrap, gcc: Use the mechanism provided by the .opt file > processing to initialize these globals. > > With this, devel/avr32/* builds. > > OK? OK gnezdo@ > Index: binutils/Makefile > === > RCS file: /cvs/ports/devel/avr32/binutils/Makefile,v > retrieving revision 1.4 > diff -u -p -r1.4 Makefile > --- binutils/Makefile 12 Jul 2019 21:15:34 - 1.4 > +++ binutils/Makefile 12 Feb 2021 22:41:54 - > @@ -2,6 +2,7 @@ > > COMMENT =Atmel AVR 32-bit binutils > V = 2.23.1 > +REVISION = 0 > DISTNAME = avr32-binutils-${V} > > # GPLv3 > Index: binutils/patches/patch-gas_config_tc-avr32_c > === > RCS file: binutils/patches/patch-gas_config_tc-avr32_c > diff -N binutils/patches/patch-gas_config_tc-avr32_c > --- /dev/null 1 Jan 1970 00:00:00 - > +++ binutils/patches/patch-gas_config_tc-avr32_c 12 Feb 2021 22:41:54 > - > @@ -0,0 +1,15 @@ > +$OpenBSD$ > + > +fix for -fno-common > + > +Index: gas/config/tc-avr32.c > +--- gas/config/tc-avr32.c.orig > gas/config/tc-avr32.c > +@@ -47,7 +47,6 @@ > + > + /* Flags given on the command line */ > + static int avr32_pic= FALSE; > +-int linkrelax = FALSE; > + int avr32_iarcompat = FALSE; > + > + /* This array holds the chars that always start a comment. */ > Index: gcc/Makefile > === > RCS file: /cvs/ports/devel/avr32/gcc/Makefile,v > retrieving revision 1.8 > diff -u -p -r1.8 Makefile > --- gcc/Makefile 15 Jan 2021 19:03:58 - 1.8 > +++ gcc/Makefile 12 Feb 2021 22:41:54 - > @@ -3,7 +3,7 @@ > COMMENT =Atmel AVR 32-bit gcc > V = 4.4.7 > DISTNAME = avr32-gcc-${V} > -REVISION = 1 > +REVISION = 2 > > # GPLv3 > PERMIT_PACKAGE = Yes > Index: gcc/patches/patch-gcc_config_avr32_avr32_c > === > RCS file: gcc/patches/patch-gcc_config_avr32_avr32_c > diff -N gcc/patches/patch-gcc_config_avr32_avr32_c > --- /dev/null 1 Jan 1970 00:00:00 - > +++ gcc/patches/patch-gcc_config_avr32_avr32_c12 Feb 2021 22:41:54 > - > @@ -0,0 +1,18 @@ > +$OpenBSD$ > + > +fix for -fno-common > + > +Index: gcc/config/avr32/avr32.c > +--- gcc/config/avr32/avr32.c.orig > gcc/config/avr32/avr32.c > +@@ -207,10 +207,6 @@ static const struct arch_type_s avr32_arch_types[] = { > + {NULL, 0, 0, 0, NULL} > + }; > + > +-/* Default arch name */ > +-const char *avr32_arch_name = "none"; > +-const char *avr32_part_name = "none"; > +- > + const struct part_type_s *avr32_part; > + const struct arch_type_s *avr32_arch; > + > Index: gcc/patches/patch-gcc_config_avr32_avr32_opt > === > RCS file: gcc/patches/patch-gcc_config_avr32_avr32_opt > diff -N gcc/patches/patch-gcc_config_avr32_avr32_opt > --- /dev/null 1 Jan 1970 00:00:00 - > +++ gcc/patches/patch-gcc_config_avr32_avr32_opt 12 Feb 2021 22:41:54 > - > @@ -0,0 +1,25 @@ > +$OpenBSD$ > + > +fix for -fno-common > + > +Index: gcc/config/avr32/avr32.opt > +--- gcc/config/avr32/avr32.opt.orig > gcc/config/avr32/avr32.opt > +@@ -56,7 +56,7 @@ Target Report Mask(HAS_ASM_ADDR_PSEUDOS) > + Use assembler pseudo-instructions lda.w and call for handling direct > addresses. (Enabled by default) > + > + mpart= > +-Target Report RejectNegative Joined Var(avr32_part_name) > ++Target Report RejectNegative Joined Var(avr32_part_name) Init("none") > + Specify the AVR32 part name > + > + mcpu= > +@@ -64,7 +64,7 @@ Target Report RejectNegative Joined Undocumented Var(a > + Specify the AVR32 part name (deprecated) > + > + march= > +-Target Report RejectNegative Joined Var(avr32_arch_name) > ++Target Report RejectNegative Joined Var(avr32_arch_name) Init("none") > + Specify the AVR32 architecture name > + > + mfast-float > Index: gcc-bootstrap/Makefile > === > RCS file: /cvs/ports/devel/avr32/gcc-bootstrap/Makefile,v > retrieving revision 1.8 > diff -u -p -r1.8 Makefile > --- gcc-bootstrap/Makefile9 Jan 2021 21:41:16 - 1.8 > +++ gcc-bootstrap/Makefile12 Feb 2021 22:41:54 - > @@ -7,7 +7,7 @@ PKGNAME = avr32-gcc-bootstrap-${V} > > # GPLv3 > PERMIT_PACKAGE = Yes > -REVISION = 1 > +REVISION = 2 > > WANTLIB =c gmp mpfr > DIST_SUBDIR =gcc > Index: gcc-bootstrap/patches/patch-gcc_config_avr32_avr32_c >
devel/avr32 -fno-common fixes
The GNU toolchain explicitly avoids common variables. Whoever hacked up this derived version didn't understand that. * binutils: Since linkrelax is already defined as a global variable, it is already initialized to 0, so we can simply drop this initialization. * gcc-bootstrap, gcc: Use the mechanism provided by the .opt file processing to initialize these globals. With this, devel/avr32/* builds. OK? Index: binutils/Makefile === RCS file: /cvs/ports/devel/avr32/binutils/Makefile,v retrieving revision 1.4 diff -u -p -r1.4 Makefile --- binutils/Makefile 12 Jul 2019 21:15:34 - 1.4 +++ binutils/Makefile 12 Feb 2021 22:41:54 - @@ -2,6 +2,7 @@ COMMENT = Atmel AVR 32-bit binutils V =2.23.1 +REVISION = 0 DISTNAME = avr32-binutils-${V} # GPLv3 Index: binutils/patches/patch-gas_config_tc-avr32_c === RCS file: binutils/patches/patch-gas_config_tc-avr32_c diff -N binutils/patches/patch-gas_config_tc-avr32_c --- /dev/null 1 Jan 1970 00:00:00 - +++ binutils/patches/patch-gas_config_tc-avr32_c12 Feb 2021 22:41:54 - @@ -0,0 +1,15 @@ +$OpenBSD$ + +fix for -fno-common + +Index: gas/config/tc-avr32.c +--- gas/config/tc-avr32.c.orig gas/config/tc-avr32.c +@@ -47,7 +47,6 @@ + + /* Flags given on the command line */ + static int avr32_pic = FALSE; +-int linkrelax = FALSE; + int avr32_iarcompat = FALSE; + + /* This array holds the chars that always start a comment. */ Index: gcc/Makefile === RCS file: /cvs/ports/devel/avr32/gcc/Makefile,v retrieving revision 1.8 diff -u -p -r1.8 Makefile --- gcc/Makefile15 Jan 2021 19:03:58 - 1.8 +++ gcc/Makefile12 Feb 2021 22:41:54 - @@ -3,7 +3,7 @@ COMMENT = Atmel AVR 32-bit gcc V =4.4.7 DISTNAME = avr32-gcc-${V} -REVISION = 1 +REVISION = 2 # GPLv3 PERMIT_PACKAGE = Yes Index: gcc/patches/patch-gcc_config_avr32_avr32_c === RCS file: gcc/patches/patch-gcc_config_avr32_avr32_c diff -N gcc/patches/patch-gcc_config_avr32_avr32_c --- /dev/null 1 Jan 1970 00:00:00 - +++ gcc/patches/patch-gcc_config_avr32_avr32_c 12 Feb 2021 22:41:54 - @@ -0,0 +1,18 @@ +$OpenBSD$ + +fix for -fno-common + +Index: gcc/config/avr32/avr32.c +--- gcc/config/avr32/avr32.c.orig gcc/config/avr32/avr32.c +@@ -207,10 +207,6 @@ static const struct arch_type_s avr32_arch_types[] = { + {NULL, 0, 0, 0, NULL} + }; + +-/* Default arch name */ +-const char *avr32_arch_name = "none"; +-const char *avr32_part_name = "none"; +- + const struct part_type_s *avr32_part; + const struct arch_type_s *avr32_arch; + Index: gcc/patches/patch-gcc_config_avr32_avr32_opt === RCS file: gcc/patches/patch-gcc_config_avr32_avr32_opt diff -N gcc/patches/patch-gcc_config_avr32_avr32_opt --- /dev/null 1 Jan 1970 00:00:00 - +++ gcc/patches/patch-gcc_config_avr32_avr32_opt12 Feb 2021 22:41:54 - @@ -0,0 +1,25 @@ +$OpenBSD$ + +fix for -fno-common + +Index: gcc/config/avr32/avr32.opt +--- gcc/config/avr32/avr32.opt.orig gcc/config/avr32/avr32.opt +@@ -56,7 +56,7 @@ Target Report Mask(HAS_ASM_ADDR_PSEUDOS) + Use assembler pseudo-instructions lda.w and call for handling direct addresses. (Enabled by default) + + mpart= +-Target Report RejectNegative Joined Var(avr32_part_name) ++Target Report RejectNegative Joined Var(avr32_part_name) Init("none") + Specify the AVR32 part name + + mcpu= +@@ -64,7 +64,7 @@ Target Report RejectNegative Joined Undocumented Var(a + Specify the AVR32 part name (deprecated) + + march= +-Target Report RejectNegative Joined Var(avr32_arch_name) ++Target Report RejectNegative Joined Var(avr32_arch_name) Init("none") + Specify the AVR32 architecture name + + mfast-float Index: gcc-bootstrap/Makefile === RCS file: /cvs/ports/devel/avr32/gcc-bootstrap/Makefile,v retrieving revision 1.8 diff -u -p -r1.8 Makefile --- gcc-bootstrap/Makefile 9 Jan 2021 21:41:16 - 1.8 +++ gcc-bootstrap/Makefile 12 Feb 2021 22:41:54 - @@ -7,7 +7,7 @@ PKGNAME = avr32-gcc-bootstrap-${V} # GPLv3 PERMIT_PACKAGE = Yes -REVISION = 1 +REVISION = 2 WANTLIB = c gmp mpfr DIST_SUBDIR = gcc Index: gcc-bootstrap/patches/patch-gcc_config_avr32_avr32_c === RCS file: gcc-bootstrap/patches/patch-gcc_config_avr32_avr32_c diff -N gcc-bootstrap/patches/patch-gcc_config_avr32_avr32_c --- /dev/null 1 Jan 1970 00:00:00 - +++ gcc-bootstrap/patches/patch-gcc_config_avr32_avr32_c12 Feb 2021 22:41:54 - @@ -0,0 +1,18 @@ +$OpenBSD$ +