Date: Mon, 10 Apr 2017 17:52:37 -0700 From: Mark Millard <markmi@dsl-only.net> To: John Marino <freebsdml@marino.st>, FreeBSD Ports <freebsd-ports@freebsd.org> Subject: Re: lang/gcc6-aux build error due to internal Makefile/sh syntax: $${PWDCMD-pwd} is missing a ":" [misidentified problem] Message-ID: <ADC29D09-D725-4B03-8370-094F55627264@dsl-only.net> In-Reply-To: <de47d1b0-cab7-7337-2664-18b63682e812@marino.st> References: <1626B3C1-0B4E-4070-A830-0EEEF38E0F87@dsl-only.net> <A3BFEC8A-EF5E-4AB8-8E22-3C267E06784E@dsl-only.net> <de47d1b0-cab7-7337-2664-18b63682e812@marino.st>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2017-Apr-10, at 1:21 PM, John Marino <freebsdml at marino.st> wrote: > On 4/10/2017 15:12, Mark Millard wrote: >> On 2017-Apr-10, at 12:12 PM, Mark Millard <markmi at dsl-only.net> = wrote: >>> with line 875 being the one with: @r=3D`${PWD_COMMAND}` >>>=20 >>> It appears to me that the notation $${PWDCMD-pwd} is not >>> what was intended. My guess is that a ":" is missing: >>>=20 >>> PWD_COMMAND =3D $${PWDCMD:-pwd} >=20 > I grepped gcc source and ${PWDCMD-pwd} shows up everywhere. I assume = it is valid for GNU make. My guess about the issue was definitely wrong: simple tests show that gmake and /bin/sh handle the notation that I pointed at. > I don't know what's going on in your particular case. > I also don't have access to the reference aarch64 machine anymore. Looking at the log again: Further back there is a message that I missed: checking size of long long... checking for geteuid... checking for = getc_unlocked... configure: error: in = `/usr/obj/portswork/usr/ports/lang/gcc6-aux/work/build/libiberty': configure: error: cannot compute sizeof (long long) See `config.log' for more details. yes checking for putchar_unlocked... yes gmake[3]: *** [Makefile:7409: configure-libiberty] Error 1 gmake[3]: *** Waiting for unfinished jobs.... Looking around that config.log shows problems like: configure:5452: checking size of long long configure:5457: = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/bin/gcc -o = conftest -pipe -B/usr/local/aarch64-freebsd/bin/ -mcpu=3Dcortex-a53 = -DLIBICONV_PLUG -g -fno-strict-aliasing -B/usr/l ocal/aarch64-freebsd/bin/ -mcpu=3Dcortex-a53 -I/usr/local/include = -DLIBICONV_PLUG -static-libstdc++ -static-libgcc -L/usr/local/lib = conftest.c >&5 In file included from conftest.c:71:0: = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h: In function = 'posix_memalign': = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h:192:46: error: expected = declaration specifiers before '__nonnull' int posix_memalign(void **, size_t, size_t) __nonnull(1); /* (ADV) */ ^~~~~~~~~ = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h:252:20: error: storage = class specified for parameter 'malloc_conf' extern const char *malloc_conf; ^~~~~~~~~~~ = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h:253:15: error: storage = class specified for parameter 'malloc_message' extern void (*malloc_message)(void *, const char *); ^~~~~~~~~~~~~~ = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h:341:14: error: storage = class specified for parameter 'suboptarg' extern char *suboptarg; /* getsubopt(3) external variable */ ^~~~~~~~~ conftest.c:74:1: error: expected '=3D', ',', ';', 'asm' or = '__attribute__' before '{' token { ^ In file included from conftest.c:71:0: = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h:192:6: error: old-style = parameter declarations in prototyped function definition int posix_memalign(void **, size_t, size_t) __nonnull(1); /* (ADV) */ ^~~~~~~~~~~~~~ = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h:192:1: error: parameter = name omitted int posix_memalign(void **, size_t, size_t) __nonnull(1); /* (ADV) */ ^~~ = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h:192:1: error: parameter = name omitted = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h:192:1: error: parameter = name omitted conftest.c:99:1: error: expected '{' at end of input } ^ And looking around for __nonnull in include files: # grep -R __nonnull /usr/include/ | more /usr/include/security/openpam_attr.h:# define OPENPAM_NONNULL(params) = __attribute__((__nonnull__ params)) # grep -R __nonnull = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/ = /usr/obj/portswork/usr/ports/lang/gcc6-aux/work/bootstrap/lib/gcc/aarch64-= aux-freebsd12.0/6.3.1/include-fixed/stdlib.h:int = posix_memalign(void **, size_t, size_t) __nonnull(1); /* (ADV) */ So the __nonnull is from the bootstrap gcc 6.3.1 include-fixed area. My guess is that __nonnull was intended to be a macro that expanded to = an attribute specification but the macro definition ended up missing for some reason. The bootstrap gcc command above shows the results of my CFLAGS and/or CXXFLAGS in case those are a problem (not that I expect they would contribute to this specific issue). I've started an update to other ports so even if they work it will be a while before the Pine64+ 2GB completes that. =3D=3D=3D Mark Millard markmi at dsl-only.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ADC29D09-D725-4B03-8370-094F55627264>