[Bug 233735] Possible build race: genoffset.o /usr/src/sys/sys/types.h: error: machine/endian.h: No such file or directory

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Apr 30 04:20:19 UTC 2021


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233735

--- Comment #11 from Mark Millard <marklmi26-fbsd at yahoo.com> ---
(In reply to Mark Millard from comment #10)

[Back to system-clang.]

clang may not report its search path sequence but
truss reports the following involving "machine":

52747: fstatat(AT_FDCWD,"./machine",0xffffffff9190,0x0) ERR#2 'No such file or
directory'
52747: fstatat(AT_FDCWD,"/usr/13_0R-src/sys/machine",0xffffffff9190,0x0) ERR#2
'No such file or directory'
52747:
fstatat(AT_FDCWD,"/usr/13_0R-src/sys/contrib/ck/include/machine",0xffffffff9190,0x0)
ERR#2 'No such file or directory'
52747:
fstatat(AT_FDCWD,"/usr/13_0R-src/sys/contrib/libfdt/machine",0xffffffff9190,0x0)
ERR#2 'No such file or directory'   
52747:
fstatat(AT_FDCWD,"/usr/13_0R-src/sys/contrib/device-tree/include/machine",0xffffffff9190,0x0)
ERR#2 'No such file or directory'
52747: fstatat(AT_FDCWD,"/usr/13_0R-src/sys/sys/machine",0xffffffff9ab0,0x0)
ERR#2 'No such file or directory'

It is not even trying the sysroot as a path prefix for
the include involving "machine".

The usage involving "BUILDs" was:

# grep BUILDs truss.txt
52747:
fstatat(AT_FDCWD,"/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/usr/local/cuda",0xffffffffc430,0x0)
ERR#2 'No such file or directory'
52747:
fstatat(AT_FDCWD,"/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/usr/local/cuda-8.0",0xffffffffc430,0x0)
ERR#2 'No such file or directory'
52747:
fstatat(AT_FDCWD,"/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/usr/local/cuda-7.5",0xffffffffc430,0x0)
ERR#2 'No such file or directory'
52747:
fstatat(AT_FDCWD,"/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/usr/local/cuda-7.0",0xffffffffc430,0x0)
ERR#2 'No such file or directory'
52747:
fstatat(AT_FDCWD,"/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/opt/rocm",0xffffffffc4e0,0x0)
ERR#2 'No such file or directory'
52747:
fstatat(AT_FDCWD,"/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/sys/GENERIC-NODBG-CA7",{
mode=drwxr-xr-x ,inode=6,size=3187,blksize=16384 },0x0) = 0 (0x0)
52747:
__realpathat(AT_FDCWD,"./opt_global.h","/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/sys/GENERIC-NODBG-CA7/opt_global.h",1024,0)
= 0 (0x0)

There is no evidence of any attempted use of sysroot has
a general include path prefix.

A "cc -###" with the other parameters as in the .o.meta
does report:

"-isysroot" "/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp"

So the following would seem to apply if otherwise
/usr/include/ usage would be expected:

# ls -PTldU
/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/usr/include/machine/endian.h
lrwxr-xr-x  1 root  wheel  33 Apr 29 12:38:12 2021
/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/usr/include/machine/endian.h
-> ../../../sys/arm/include/endian.h

# ls -LTld
/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/usr/include/machine/endian.h
-rw-r--r--  1 root  wheel  4311 Apr 28 02:03:34 2021
/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/usr/include/machine/endian.h

# ls -LTld
/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/sys/arm/include/endian.h
-rw-r--r--  1 root  wheel  4311 Apr 28 02:03:34 2021
/usr/obj/BUILDs/13_0R-CA7-nodbg-clang/usr/13_0R-src/arm.armv7/tmp/sys/arm/include/endian.h

But I see no evidence that -isysroot ( or any /usr/include )
is being put to use.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list