Mark Millard via freebsd-hackers
2018-10-27 03:42:27 UTC
In trying to amd64 -> armv7 cross build ports via poudriere-devel
use with native cross tools involved (and UFS, not ZFS), I'm
getting about 117 ports that built and then one that ends up stuck
in wait/uwait . ^C to poudriere and restarting it repeats the
stuck behavior at the same point (a cc and its ld), for example:
[00:02:51] [01] [00:00:00] Building print/texinfo | texinfo-6.5,1
ps output extraction (blank lines added for each of
scanning):
UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND
. . .
0 42312 32181 0 52 0 12904 3904 select I 1 0:00.02 sh: poudriere[FBSDFSSDjailArmV7-default][01]: build_pkg (texinfo-6.5,1) (sh)
0 42974 42312 0 52 0 12904 3900 wait I 1 0:00.00 sh: poudriere[FBSDFSSDjailArmV7-default][01]: build_pkg (texinfo-6.5,1) (sh)
0 42975 42974 0 52 0 10408 1840 wait IJ 1 0:00.01 /usr/bin/make -C /usr/ports/print/texinfo configure
0 43077 42975 0 52 0 10252 1792 wait IJ 1 0:00.00 /bin/sh -e -c (cd /wrkdirs/usr/ports/print/texinfo/work/texinfo-6.5 && _LATE_CONFIGURE_ARGS="" ; if [ -z "" ] && ./configure --help
0 43375 43077 0 52 0 11164 2392 wait IJ 1 0:00.19 /bin/sh ./configure --enable-nls --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man --disable-silent-rules --infodir=/usr
0 46850 43375 0 52 0 11164 2388 wait IJ 1 0:00.00 /bin/sh ./configure --enable-nls --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man --disable-silent-rules --infodir=/usr
0 46857 46850 0 52 0 11080 2060 wait IJ 1 0:00.04 /bin/sh ./configure --disable-option-checking --prefix=/usr/local --enable-nls --localstatedir=/var --mandir=/usr/local/man --disable-s
0 47796 46857 0 52 0 113840 26184 wait IJ 1 0:00.15 /usr/local/bin/qemu-arm-static /usr/bin/cc -o conftest -O2 -pipe -mcpu=cortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -mcpu=cortex-a
0 47801 47796 0 52 0 285300 39672 uwait IJ 1 0:00.22 qemu-arm-static -L /usr/gnemul/qemu-arm /usr/bin/ld --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --hash-style=both --enable-new-
So the "/usr/local/bin/qemu-arm-static /usr/bin/cc . . ."
creates the child "qemu-arm-static -L /usr/gnemul/qemu-arm /usr/bin/ld . . ."
process and the two get hung up. Letting it sit for long periods does
not let it progress.
The full commands are (note the "-pipe" vs. the "/tmp/conftest-6c0832.o"):
/usr/local/bin/qemu-arm-static /usr/bin/cc -o conftest -O2 -pipe -mcpu=cortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -mcpu=cortex-a7 -DLIBICONV_PLUG conftest.c
and:
qemu-arm-static -L /usr/gnemul/qemu-arm /usr/bin/ld --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --hash-style=both --enable-new-dtags -o conftest /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib /tmp/conftest-6c0832.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/crtend.o /usr/lib/crtn.o
For reference for /tmp/conftest-6c0832.o :
# ls -lTd /usr/local/poudriere/data/.m/FBSDFSSDjailArmV7-default/01/tmp/conftest-6c0832.o
-rw-r--r-- 1 root wheel 4204 Oct 26 17:33:13 2018 /usr/local/poudriere/data/.m/FBSDFSSDjailArmV7-default/01/tmp/conftest-6c0832.o
(I'm not using tmpfs or the like at all.)
The context is based on head -r339076 an is on a
Ryzen Threadripper 1950X system, natively booted
(not Hyper-V). (I've not tried under Hyper-V yet.)
Note: I have built ports similarly before --but the
last time was back in March-May sometime.
# poudriere jail -jFBSDFSSDjailArmV7 -i
Jail name: FBSDFSSDjailArmV7
Jail version: 12.0-ALPHA8
Jail arch: arm.armv7
Jail method: null
Jail mount: /usr/obj/DESTDIRs/clang-armv7-installworld-poud
Jail fs:
Jail updated: 2018-10-26 16:42:55
Tree name: default
Tree method: null
Status: parallel_build:
Building started: 2018-10-26 17:29:36
Elapsed time: 02:47:50
Packages built: 0
Packages failed: 0
Packages ignored: 0
Packages skipped: 0
Packages total: 84
Packages left: 84
# poudriere ports -l
PORTSTREE METHOD TIMESTAMP PATH
default null 2017-08-14 21:07:05 /usr/ports
I have yet to think of a way to look into this or to work around
it. But my long running build on an Orange Pi Plus 2nd Edition
has finished so I'll update from that for now.
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
use with native cross tools involved (and UFS, not ZFS), I'm
getting about 117 ports that built and then one that ends up stuck
in wait/uwait . ^C to poudriere and restarting it repeats the
stuck behavior at the same point (a cc and its ld), for example:
[00:02:51] [01] [00:00:00] Building print/texinfo | texinfo-6.5,1
ps output extraction (blank lines added for each of
scanning):
UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND
. . .
0 42312 32181 0 52 0 12904 3904 select I 1 0:00.02 sh: poudriere[FBSDFSSDjailArmV7-default][01]: build_pkg (texinfo-6.5,1) (sh)
0 42974 42312 0 52 0 12904 3900 wait I 1 0:00.00 sh: poudriere[FBSDFSSDjailArmV7-default][01]: build_pkg (texinfo-6.5,1) (sh)
0 42975 42974 0 52 0 10408 1840 wait IJ 1 0:00.01 /usr/bin/make -C /usr/ports/print/texinfo configure
0 43077 42975 0 52 0 10252 1792 wait IJ 1 0:00.00 /bin/sh -e -c (cd /wrkdirs/usr/ports/print/texinfo/work/texinfo-6.5 && _LATE_CONFIGURE_ARGS="" ; if [ -z "" ] && ./configure --help
0 43375 43077 0 52 0 11164 2392 wait IJ 1 0:00.19 /bin/sh ./configure --enable-nls --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man --disable-silent-rules --infodir=/usr
0 46850 43375 0 52 0 11164 2388 wait IJ 1 0:00.00 /bin/sh ./configure --enable-nls --prefix=/usr/local --localstatedir=/var --mandir=/usr/local/man --disable-silent-rules --infodir=/usr
0 46857 46850 0 52 0 11080 2060 wait IJ 1 0:00.04 /bin/sh ./configure --disable-option-checking --prefix=/usr/local --enable-nls --localstatedir=/var --mandir=/usr/local/man --disable-s
0 47796 46857 0 52 0 113840 26184 wait IJ 1 0:00.15 /usr/local/bin/qemu-arm-static /usr/bin/cc -o conftest -O2 -pipe -mcpu=cortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -mcpu=cortex-a
0 47801 47796 0 52 0 285300 39672 uwait IJ 1 0:00.22 qemu-arm-static -L /usr/gnemul/qemu-arm /usr/bin/ld --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --hash-style=both --enable-new-
So the "/usr/local/bin/qemu-arm-static /usr/bin/cc . . ."
creates the child "qemu-arm-static -L /usr/gnemul/qemu-arm /usr/bin/ld . . ."
process and the two get hung up. Letting it sit for long periods does
not let it progress.
The full commands are (note the "-pipe" vs. the "/tmp/conftest-6c0832.o"):
/usr/local/bin/qemu-arm-static /usr/bin/cc -o conftest -O2 -pipe -mcpu=cortex-a7 -DLIBICONV_PLUG -g -fno-strict-aliasing -mcpu=cortex-a7 -DLIBICONV_PLUG conftest.c
and:
qemu-arm-static -L /usr/gnemul/qemu-arm /usr/bin/ld --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --hash-style=both --enable-new-dtags -o conftest /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib /tmp/conftest-6c0832.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/crtend.o /usr/lib/crtn.o
For reference for /tmp/conftest-6c0832.o :
# ls -lTd /usr/local/poudriere/data/.m/FBSDFSSDjailArmV7-default/01/tmp/conftest-6c0832.o
-rw-r--r-- 1 root wheel 4204 Oct 26 17:33:13 2018 /usr/local/poudriere/data/.m/FBSDFSSDjailArmV7-default/01/tmp/conftest-6c0832.o
(I'm not using tmpfs or the like at all.)
The context is based on head -r339076 an is on a
Ryzen Threadripper 1950X system, natively booted
(not Hyper-V). (I've not tried under Hyper-V yet.)
Note: I have built ports similarly before --but the
last time was back in March-May sometime.
# poudriere jail -jFBSDFSSDjailArmV7 -i
Jail name: FBSDFSSDjailArmV7
Jail version: 12.0-ALPHA8
Jail arch: arm.armv7
Jail method: null
Jail mount: /usr/obj/DESTDIRs/clang-armv7-installworld-poud
Jail fs:
Jail updated: 2018-10-26 16:42:55
Tree name: default
Tree method: null
Status: parallel_build:
Building started: 2018-10-26 17:29:36
Elapsed time: 02:47:50
Packages built: 0
Packages failed: 0
Packages ignored: 0
Packages skipped: 0
Packages total: 84
Packages left: 84
# poudriere ports -l
PORTSTREE METHOD TIMESTAMP PATH
default null 2017-08-14 21:07:05 /usr/ports
I have yet to think of a way to look into this or to work around
it. But my long running build on an Orange Pi Plus 2nd Edition
has finished so I'll update from that for now.
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)