Re: head -r335782 (?) broke ci.freebsd.org's FreeBSD-head-amd64-gcc build (lib32 part of build)

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Fri, 29 Jun 2018 10:38:03 -0700
On 6/28/18 7:54 PM, Mark Millard wrote:
> On 2018-Jun-28, at 6:04 PM, Mark Millard <marklmi at yahoo.com> wrote:
> 
>> On 2018-Jun-28, at 5:39 PM, Mark Millard <marklmi at yahoo.com> wrote:
>>
>>> [ ci.free.bsd.org jumped from -r335773 (built) to -r335784 (failed)
>>> for FreeBSD-head-amd64-gcc. It looked to me like the most likely
>>> breaking-change was the following but I've not tried personal
>>> builds to confirm.
>>> ]
>>>
>>> It looks to me that:
>>>
>>>> Author: jhb
>>>> Date: Thu Jun 28 21:26:14 2018
>>>> New Revision: 335782
>>>> URL: 
>>>> https://svnweb.freebsd.org/changeset/base/335782

>>>>
>>>>
>>>> Log:
>>>> Remove the various build flag hacks for GCC cross-compile.
>>>>
>>>> The xtoolchain GCC packages have not required these flags since ports
>>>> commits r465416 and r466701.  The in-tree GCC 4.2.1 has also been patched
>>>> in r335716 and r335717 to correctly honor --sysroot when looking for
>>>> includes and libraries.
>>>>
>>>> Reviewed by:	bdrewery
>>>> Sponsored by:	DARPA / AFRL
>>>> Differential Revision:	
>>>> https://reviews.freebsd.org/D16055

>>> . . .
>>>
>>> broke ci.freebsd.org's FreeBSD-head-amd64-gcc build.
>>>
>>> https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/6331/consoleText shows:
>>>
>>> --- catrigl.o ---
>>> /usr/local/bin/x86_64-unknown-freebsd11.1-gcc -DCOMPAT_32BIT -march=i686 -mmmx -msse -msse2 -m32  -L/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/lib32  --sysroot=/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp  -B/usr/local/x86_64-unknown-freebsd11.1/bin/ -B/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/lib32  -O2 -pipe -I/workspace/src/lib/msun/x86 -I/workspace/src/lib/msun/ld80 -I/workspace/src/lib/msun/i387 -I/workspace/src/lib/msun/src -I/workspace/src/lib/libc/include  -I/workspace/src/lib/libc/i386  -g -MD  -MF.depend.catrigl.o -MTcatrigl.o -std=gnu99 -fstack-protector-strong -Wsystem-headers -Werror -Wno-pointer-sign -Wno-error=address -Wno-error=array-bounds -Wno-error=attributes -Wno-error=bool-compare -Wno-error=cast-align -Wno-error=clobbered -Wno-error=enum-compare -Wno-error=extra -Wno-error=inline -Wno-error=logical-not-parentheses -Wno-error=strict-aliasing -Wno-error=uninitialized -Wno-error=unused-but-set-variable -Wno-error=unused-function -Wno-error=unused-value -Wno-error=misleading-indentation -Wno-error=nonnull-compare -Wno-error=shift-negative-value -Wno-error=tautological-compare -Wno-error=unused-const-variable -Wno-unknown-pragmas     -c /workspace/src/lib/msun/src/catrigl.c -o catrigl.o
>>> /workspace/src/lib/msun/src/catrigl.c:90:2: error: #error "Unsupported long double format"
>>> #error "Unsupported long double format"
>>> ^~~~~
>>> /workspace/src/lib/msun/src/catrigl.c: In function 'casinhl':
>>> /workspace/src/lib/msun/src/catrigl.c:190:35: error: 'm_ln2' undeclared (first use in this function)
>>>   w = clog_for_large_values(z) + m_ln2;
>>>                                  ^~~~~
>>> /workspace/src/lib/msun/src/catrigl.c:190:35: note: each undeclared identifier is reported only once for each function it appears in
>>> /workspace/src/lib/msun/src/catrigl.c:202:11: error: 'SQRT_6_EPSILON' undeclared (first use in this function)
>>> if (ax < SQRT_6_EPSILON / 4 && ay < SQRT_6_EPSILON / 4)
>>>          ^~~~~~~~~~~~~~
>>> /workspace/src/lib/msun/src/catrigl.c: In function 'cacosl':
>>> /workspace/src/lib/msun/src/catrigl.c:250:20: error: 'm_ln2' undeclared (first use in this function)
>>>  ry = creall(w) + m_ln2;
>>>                   ^~~~~
>>> /workspace/src/lib/msun/src/catrigl.c:261:11: error: 'SQRT_6_EPSILON' undeclared (first use in this function)
>>> if (ax < SQRT_6_EPSILON / 4 && ay < SQRT_6_EPSILON / 4)
>>>          ^~~~~~~~~~~~~~
>>> In file included from /workspace/src/lib/msun/src/catrigl.c:45:0:
>>> /workspace/src/lib/msun/src/catrigl.c: In function 'clog_for_large_values':
>>> /workspace/src/lib/msun/src/catrigl.c:316:34: error: 'm_e' undeclared (first use in this function)
>>>  return (CMPLXL(logl(hypotl(x / m_e, y / m_e)) + 1,
>>>                                 ^
>>> /workspace/src/lib/msun/src/catrigl.c:316:11: error: '__builtin_complex' operand not of real binary floating-point type
>>>  return (CMPLXL(logl(hypotl(x / m_e, y / m_e)) + 1,
>>>          ^
>>> /workspace/src/lib/msun/src/catrigl.c: In function 'catanhl':
>>> /workspace/src/lib/msun/src/catrigl.c:390:11: error: 'SQRT_3_EPSILON' undeclared (first use in this function)
>>> if (ax < SQRT_3_EPSILON / 2 && ay < SQRT_3_EPSILON / 2) {
>>>          ^~~~~~~~~~~~~~
>>> /workspace/src/lib/msun/src/catrigl.c:396:9: error: 'm_ln2' undeclared (first use in this function)
>>>  rx = (m_ln2 - logl(ay)) / 2;
>>>        ^~~~~
>>> *** [catrigl.o] Error code 1
>>
>> Later below expand the failing and previoly good commands, one
>> option per line. The summary of the distinction in content is
>> a one line difference, the working example ( -r335773 )had the
>> option:
>>
>> -isystem /workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/include
>>
>> but the failing one did not. Working ( -r335773 ) is shown first.
>>
>> --- catrigl.o ---
>> /usr/local/bin/x86_64-unknown-freebsd11.1-gcc
>> -DCOMPAT_32BIT
>> -march=i686
>> -mmmx
>> -msse
>> -msse2
>> -m32
>> -L/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/lib32
>> --sysroot=/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp
>> -B/usr/local/x86_64-unknown-freebsd11.1/bin/
>> -B/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/lib32
>> -isystem /workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/include
>> -O2
>> -pipe
>> -I/workspace/src/lib/msun/x86
>> -I/workspace/src/lib/msun/ld80
>> -I/workspace/src/lib/msun/i387
>> -I/workspace/src/lib/msun/src
>> -I/workspace/src/lib/libc/include
>> -I/workspace/src/lib/libc/i386
>> -g
>> -MD
>> -MF.depend.catrigl.o
>> -MTcatrigl.o
>> -std=gnu99
>> -fstack-protector-strong
>> -Wsystem-headers
>> -Werror
>> -Wno-pointer-sign
>> -Wno-error=address
>> -Wno-error=array-bounds
>> -Wno-error=attributes
>> -Wno-error=bool-compare
>> -Wno-error=cast-align
>> -Wno-error=clobbered
>> -Wno-error=enum-compare
>> -Wno-error=extra
>> -Wno-error=inline
>> -Wno-error=logical-not-parentheses
>> -Wno-error=strict-aliasing
>> -Wno-error=uninitialized
>> -Wno-error=unused-but-set-variable
>> -Wno-error=unused-function
>> -Wno-error=unused-value
>> -Wno-error=misleading-indentation
>> -Wno-error=nonnull-compare
>> -Wno-error=shift-negative-value
>> -Wno-error=tautological-compare
>> -Wno-error=unused-const-variable
>> -Wno-unknown-pragmas
>> -c /workspace/src/lib/msun/src/catrigl.c
>> -o catrigl.o
>>
>>
>> --- catrigl.o ---
>> /usr/local/bin/x86_64-unknown-freebsd11.1-gcc
>> -DCOMPAT_32BIT
>> -march=i686
>> -mmmx
>> -msse
>> -msse2
>> -m32
>> -L/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/lib32
>> --sysroot=/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp
>> -B/usr/local/x86_64-unknown-freebsd11.1/bin/
>> -B/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/lib32
>> -O2
>> -pipe
>> -I/workspace/src/lib/msun/x86
>> -I/workspace/src/lib/msun/ld80
>> -I/workspace/src/lib/msun/i387
>> -I/workspace/src/lib/msun/src
>> -I/workspace/src/lib/libc/include 
>> -I/workspace/src/lib/libc/i386
>> -g
>> -MD
>> -MF.depend.catrigl.o
>> -MTcatrigl.o
>> -std=gnu99
>> -fstack-protector-strong
>> -Wsystem-headers
>> -Werror
>> -Wno-pointer-sign
>> -Wno-error=address
>> -Wno-error=array-bounds
>> -Wno-error=attributes
>> -Wno-error=bool-compare
>> -Wno-error=cast-align
>> -Wno-error=clobbered
>> -Wno-error=enum-compare
>> -Wno-error=extra
>> -Wno-error=inline
>> -Wno-error=logical-not-parentheses
>> -Wno-error=strict-aliasing
>> -Wno-error=uninitialized
>> -Wno-error=unused-but-set-variable
>> -Wno-error=unused-function
>> -Wno-error=unused-value
>> -Wno-error=misleading-indentation
>> -Wno-error=nonnull-compare
>> -Wno-error=shift-negative-value
>> -Wno-error=tautological-compare
>> -Wno-error=unused-const-variable
>> -Wno-unknown-pragmas
>> -c /workspace/src/lib/msun/src/catrigl.c
>> -o catrigl.o
> 
> 
> For the report:
> 
>> The xtoolchain GCC packages have not required these flags since ports
>>   commits r465416 and r466701
> 
> Looking at https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/6331/consoleText

> there is:
> 
>> Updating FreeBSD repository catalogue...
>> FreeBSD repository is up to date.
>> All repositories are up to date.
>> The following 6 package(s) will be affected (of 0 checked):
>>
>> New packages to be INSTALLED:
>> 	amd64-xtoolchain-gcc: 0.4_1
>> 	amd64-gcc: 6.4.0
>> 	mpfr: 4.0.1
>> 	gmp: 6.1.2
>> 	mpc: 1.1.0_1
>> 	amd64-binutils: 2.30_3,1
> 
> and amd64-gcc being 6.4.0 (via powerpc64-gcc) is from -r466834
> (via looking up in https://svnweb.freebsd.org/ports/head/devel/ ).
> 
> This indicates that -r465416 and -r466701 did not cause:
> 
> --sysroot=/workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp
> 
> to lead to include files being looked up in:
> 
> /workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/include
> 
> Thus there appears to still be a need for:
> 
> -isystem /workspace/obj/workspace/src/amd64.amd64/obj-lib32/tmp/usr/include
> 
> unless more is done to the devel/*-gcc to make them look
> in that additional place automatically (based on --sysroot).

--sysroot does work, and you can verify it by doing the following:

% touch empty.c
% x86_64-unknown-freebsd11.2-gcc -c -v empty.c
Using built-in specs.
COLLECT_GCC=x86_64-unknown-freebsd11.2-gcc
Target: x86_64-unknown-freebsd11.2
...
ignoring nonexistent directory "/usr/local/lib/gcc/x86_64-unknown-freebsd11.2/6.4.0/include-fixed"
ignoring nonexistent directory "/usr/local/lib/gcc/x86_64-unknown-freebsd11.2/6.4.0/../../../../x86_64-unknown-freebsd11.2/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc/x86_64-unknown-freebsd11.2/6.4.0/include
 /usr/include
End of search list.
...
% x86_64-unknown-freebsd11.2-gcc -c -v empty.c  --sysroot=/foo
Using built-in specs.
COLLECT_GCC=x86_64-unknown-freebsd11.2-gcc
Target: x86_64-unknown-freebsd11.2
...
ignoring nonexistent directory "/usr/local/lib/gcc/x86_64-unknown-freebsd11.2/6.4.0/include-fixed"
ignoring nonexistent directory "/usr/local/lib/gcc/x86_64-unknown-freebsd11.2/6.4.0/../../../../x86_64-unknown-freebsd11.2/include"
ignoring nonexistent directory "/foo/usr/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc/x86_64-unknown-freebsd11.2/6.4.0/include
End of search list.

I will see if I can reproduce the failure locally.

-- 
John Baldwin
Received on Fri Jun 29 2018 - 15:38:08 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:16 UTC