Re: FYI: main (bad9fa56620e based): some unexpected SIGSEGV's using poudriere-devel to build armv7 ports on aarch64 (cortex-a72) system

Mark Millard via freebsd-arm <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm,gmane.os.freebsd.current
Message-ID <[email protected]>
On 2021-Mar-9, at 17:18, Mark Millard <marklmi at yahoo.com> wrote:

> On 2021-Mar-9, at 15:39, Mark Millard <marklmi at yahoo.com> wrote:
> 
>> After using poudriere to build ports for native cortex-a72
>> on the MACCHIATObin Double Shot (and similarly for
>> cortex-a57 on the OverDrive 1000) I attempted to do my
>> usual bulk build targeting cortex-a7 via poudriere-devel:
>> 
>> # poudriere jail -i -jFBSDFSSDjailArmV7
>> Jail name:         FBSDFSSDjailArmV7
>> Jail version:      14.0-CURRENT
>> Jail arch:         arm.armv7
>> Jail method:       null
>> Jail mount:        /usr/obj/DESTDIRs/clang-armv7-installworld-poud
>> Jail fs:           
>> Jail updated:      2021-01-27 14:47:10
>> Jail pkgbase:      disabled
>> 
>> But I got some SIGSEGV failures that I've never before
>> had analogous failures. I'll show the 6 backtraces.
>> They all have a similar type-of-context but in various
>> programs, summarized as (from the lldb bt outputs):
>> 
>> gmake`new_job(file=<unavailable>) [3 examples]
>> and:
>> sh`waitcmdloop(job=0x00064230) [2 examples]
>> and:
>> cmake`(anonymous namespace)::RunCommand(command=<unavailable>, output="14.0-CURRENT\n", retVal=<unavailable>, dir=<unavailable>, verbose=<unavailable>, encoding=Auto)
>> 
>> (Only 83 ports built of 208 built, 5 failed, and 120 were
>> skipped.)
>> 
>> I have not yet tried simply running poudriere again to see
>> how reliable the specific failures may or may not be: I'm
>> first collecting and reporting this information. Nor have
>> I tried doing the build on the cortex-a57 context instead.
> 
> I have a little re-run information now:
> 
> No -JN with ALLOW_MAKE_JOBS=yes: seems repeatable
> -J1 with ALLOW_MAKE_JOBS=yes: seems repeatable
> -J1 without ALLOW_MAKE_JOBS: mixed so far in the one run.
> 
> For -J1 without ALLOW_MAKE_JOBS for as far as the bulk
> build has gotten (still in progress):
> 
> [00:22:03] [01] [00:21:12] Finished devel/cmake | cmake-3.19.6: Failed: configure
> [00:23:04] [01] [00:00:59] Finished textproc/libxslt | libxslt-1.1.34_1: Success
> [00:33:35] [01] [00:00:19] Finished textproc/itstool | itstool-2.0.6: Failed: configure
> 
> Some ports dependent on libxslt-1.1.34_1 are building as well,
> devel/glib20 , textproc/minixmlto , and x11/xkeyboard-config
> have built.
> 
> I'm not sure it is reasonable to wait on -J1 without
> ALLOW_MAKE_JOBS to see what the devel/gdb and
> x11-toolkits/libXaw build does. For example qt5-core
> that is now building and may not be worth waiting for.
> 
> The results do suggest that the issue is racy, no matter
> if the number of active processes/threads changes the
> probabilities involved or not.

I stopped the build and continued by starting
another . . .

Without both -J and ALLOW_MAKE_JOBS ((so implicitly
-J4 in the context) it got the following results
for the 4-left of 5 originally failing:

[00:00:51] [02] [00:00:19] Finished textproc/itstool | itstool-2.0.6: Failed: configure
[00:05:00] [02] [00:02:38] Finished x11-toolkits/libXaw | libXaw-1.0.13_3,2: Success
[00:19:02] [03] [00:15:00] Finished devel/gdb@py37 | gdb-10.1_1: Failed: build
[00:29:33] [01] [00:29:01] Finished devel/cmake | cmake-3.19.6: Failed: configure

17 ports built that depend on textproc/libxslt and/or
x11-toolkits/libXaw . The 3 failures above made the
rest (100) skip.

textproc/libxslt and x11-toolkits/libXaw sometimes failing
and sometimes not suggests a racy context at some level
of the operations involved.



>> I'll note that when I looked at detail as the assembler level
>> it appeared that there was a frame not shown between #0 and #1
>> in lldb's output: Frame #1 "->" was indicating the instruction
>> after a simple bl to a not-shown subroutine.
>> 
>> For building textproc/libxslt :
>> (jobserver_acquire not shown between #0 and #1)
>> 
>> (lldb) bt
>> * thread #1, name = 'gmake', stop reason = signal SIGSEGV
>> * frame #0: 0xffffe190
>>   frame #1: 0x0003b5f8 gmake`new_job(file=<unavailable>) at job.c:1870:21
>>   frame #2: 0x0002db80 gmake`execute_file_commands(file=<unavailable>) at commands.c:476:3 [artificial]
>>   frame #3: 0x00049acc gmake`update_file [inlined] remake_file(file=0x400a9700) at remake.c:1234:11
>>   frame #4: 0x00049a84 gmake`update_file [inlined] update_file_1(file=<unavailable>, depth=6) at remake.c:835
>>   frame #5: 0x000494ec gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #6: 0x0004b08c gmake`check_dep(file=0x400a9700, depth=<unavailable>, this_mtime=1, must_make_ptr=0xffffc4ac) at remake.c:1024:20
>>   frame #7: 0x00049074 gmake`update_file at remake.c:572:17
>>   frame #8: 0x00048b80 gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #9: 0x0004b08c gmake`check_dep(file=0x400a9400, depth=<unavailable>, this_mtime=1, must_make_ptr=0xffffc564) at remake.c:1024:20
>>   frame #10: 0x00049074 gmake`update_file at remake.c:572:17
>>   frame #11: 0x00048b80 gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #12: 0x0004b08c gmake`check_dep(file=0x400a8f20, depth=<unavailable>, this_mtime=1, must_make_ptr=0xffffc61c) at remake.c:1024:20
>>   frame #13: 0x00049074 gmake`update_file at remake.c:572:17
>>   frame #14: 0x00048b80 gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #15: 0x000487e0 gmake`update_goal_chain(goaldeps=<unavailable>) at remake.c:151:22
>>   frame #16: 0x0003f25c gmake`main(argc=2, argv=0xffffd470, envp=0xffffffff) at main.c:2589:13
>>   frame #17: 0x0002c0fc gmake`__start(argc=2, argv=<unavailable>, env=<unavailable>, ps_strings=<unavailable>, obj=0x400c4004, cleanup=0x40091aa0) at crt1_c.c:92:7
>> 
>> -> 1870	        got_token = jobserver_acquire (waiting_jobs != NULL);
>> 
>>   0x3b5f4 <+1288>: bl     0x50078                   ; jobserver_acquire at posixos.c:265
>> ->  0x3b5f8 <+1292>: cmp    r0, #1
>> 
>> 
>> For building x11-toolkits/libXaw :
>> (jobserver_acquire not shown between #0 and #1)
>> 
>> (lldb) bt
>> * thread #1, name = 'gmake', stop reason = signal SIGSEGV
>> * frame #0: 0xffffe190
>>   frame #1: 0x0003b5f8 gmake`new_job(file=<unavailable>) at job.c:1870:21
>>   frame #2: 0x0002db80 gmake`execute_file_commands(file=<unavailable>) at commands.c:476:3 [artificial]
>>   frame #3: 0x00049acc gmake`update_file [inlined] remake_file(file=0x4036a580) at remake.c:1234:11
>>   frame #4: 0x00049a84 gmake`update_file [inlined] update_file_1(file=<unavailable>, depth=6) at remake.c:835
>>   frame #5: 0x000494ec gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #6: 0x0004b08c gmake`check_dep(file=0x4036a580, depth=<unavailable>, this_mtime=1, must_make_ptr=0xffffc31c) at remake.c:1024:20
>>   frame #7: 0x00049074 gmake`update_file at remake.c:572:17
>>   frame #8: 0x00048b80 gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #9: 0x0004b08c gmake`check_dep(file=0x4036a220, depth=<unavailable>, this_mtime=1, must_make_ptr=0xffffc3d4) at remake.c:1024:20
>>   frame #10: 0x00049074 gmake`update_file at remake.c:572:17
>>   frame #11: 0x00048b80 gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #12: 0x0004b08c gmake`check_dep(file=0x40369ec0, depth=<unavailable>, this_mtime=1, must_make_ptr=0xffffc48c) at remake.c:1024:20
>>   frame #13: 0x00049074 gmake`update_file at remake.c:572:17
>>   frame #14: 0x00048b80 gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #15: 0x000487e0 gmake`update_goal_chain(goaldeps=<unavailable>) at remake.c:151:22
>>   frame #16: 0x0003f25c gmake`main(argc=2, argv=0xffffd500, envp=0xffffffff) at main.c:2589:13
>>   frame #17: 0x0002c0fc gmake`__start(argc=2, argv=<unavailable>, env=<unavailable>, ps_strings=<unavailable>, obj=0x400c4004, cleanup=0x40091aa0) at crt1_c.c:92:7
>> 
>> -> 1870	        got_token = jobserver_acquire (waiting_jobs != NULL);
>> 
>>   0x3b5f4 <+1288>: bl     0x50078                   ; jobserver_acquire at posixos.c:265
>> ->  0x3b5f8 <+1292>: cmp    r0, #1
>> 
>> 
>> For building textproc/itstool :
>> (dowait not shown between #0 and #1)
>> 
>> (lldb) bt
>> * thread #1, name = 'sh', stop reason = signal SIGSEGV
>> * frame #0: 0xffffe190
>>   frame #1: 0x00031aa8 sh`waitcmdloop(job=0x00064230) at jobs.c:608:11
>>   frame #2: 0x00031a24 sh`waitcmd(argc=<unavailable>, argv=<unavailable>) at jobs.c:554:13
>>   frame #3: 0x00028f54 sh`evalcommand(cmd=0x400ad0e4, flags=<unavailable>, backcmd=0x00000000) at eval.c:1107:16
>>   frame #4: 0x00027800 sh`evaltree(n=0x400ad0e4, flags=<unavailable>) at eval.c:289:4
>>   frame #5: 0x000344d0 sh`cmdloop(top=1) at main.c:221:4
>>   frame #6: 0x000342f4 sh`main(argc=<unavailable>, argv=<unavailable>) at main.c:168:3
>>   frame #7: 0x0002480c sh`__start(argc=8, argv=<unavailable>, env=<unavailable>, ps_strings=<unavailable>, obj=0x400b4004, cleanup=0x40081aa0) at crt1_c.c:92:7
>> 
>> -> 608 		} while (dowait(DOWAIT_BLOCK | DOWAIT_SIG, (struct job *)NULL) != -1);
>> 
>>   0x31aa4 <+80>:  bl     0x32bcc                   ; dowait at jobs.c:1142
>> ->  0x31aa8 <+84>:  cmn    r0, #1
>> 
>> 
>> For building devel/cmake :
>> (cmsysProcess_WaitForData not shown between #0 and #1)
>> (Note: the failing cmake is Bootstrap.cmk/cmake .)
>> 
>> (lldb) bt
>> * thread #1, name = 'cmake', stop reason = signal SIGSEGV
>> * frame #0: 0xffffe190
>>   frame #1: 0x000fd124 cmake`(anonymous namespace)::RunCommand(command=<unavailable>, output="14.0-CURRENT\n", retVal=<unavailable>, dir=<unavailable>, verbose=<unavailable>, encoding=Auto) at cmExecProgramCommand.cxx:223:15
>>   frame #2: 0x000fca24 cmake`cmExecProgramCommand(args=<unavailable>, status=<unavailable>) at cmExecProgramCommand.cxx:95:14
>>   frame #3: 0x002a0ca0 cmake`InvokeBuiltinCommand(command=(cmake`cmExecProgramCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&) at cmExecProgramCommand.cxx:26), args=<unavailable>, status=0xffffb9a8)(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&), std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&) at cmState.cxx:430:10
>>   frame #4: 0x00248988 cmake`cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&, cm::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) [inlined] std::__1::__function::__value_func<bool (std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&)>::operator(this=<unavailable>, __args=<unavailable>, __args=<unavailable>)(std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&) const at functional:1884:16
>>   frame #5: 0x00248980 cmake`cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&, cm::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) [inlined] std::__1::function<bool (std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&)>::operator(this=<unavailable>, __arg=<unavailable>, __arg=<unavailable>)(std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&) const at functional:2556
>>   frame #6: 0x00248980 cmake`cmMakefile::ExecuteCommand(this=0x4086a000, lff=0x408798b0, status=<unavailable>, deferId=<unavailable>) at cmMakefile.cxx:462
>>   frame #7: 0x001eabac cmake`cmIfFunctionBlocker::Replay(this=0x403d2800, functions=<unavailable>, inStatus=0xffffbd10) at cmIfCommand.cxx:149:10
>>   frame #8: 0x00157d50 cmake`cmFunctionBlocker::IsFunctionBlocked(this=0x403d2800, lff=<unavailable>, status=<unavailable>) at cmFunctionBlocker.cxx:42:20
>>   frame #9: 0x002484a4 cmake`cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&, cm::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) [inlined] cmMakefile::IsFunctionBlocked(this=0x4086a000, lff=<unavailable>, status=<unavailable>) at cmMakefile.cxx:3426:40
>>   frame #10: 0x00248484 cmake`cmMakefile::ExecuteCommand(this=0x4086a000, lff=0x40868440, status=<unavailable>, deferId=optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > @ 0xffffbc78) at cmMakefile.cxx:421
>>   frame #11: 0x001eabac cmake`cmIfFunctionBlocker::Replay(this=0x403d2760, functions=<unavailable>, inStatus=0xffffc078) at cmIfCommand.cxx:149:10
>>   frame #12: 0x00157d50 cmake`cmFunctionBlocker::IsFunctionBlocked(this=0x403d2760, lff=<unavailable>, status=<unavailable>) at cmFunctionBlocker.cxx:42:20
>>   frame #13: 0x002484a4 cmake`cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&, cm::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) [inlined] cmMakefile::IsFunctionBlocked(this=0x4086a000, lff=<unavailable>, status=<unavailable>) at cmMakefile.cxx:3426:40
>>   frame #14: 0x00248484 cmake`cmMakefile::ExecuteCommand(this=0x4086a000, lff=0x408683b8, status=<unavailable>, deferId=optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > @ 0xffffbfe0) at cmMakefile.cxx:421
>>   frame #15: 0x001eabac cmake`cmIfFunctionBlocker::Replay(this=0x403d2710, functions=<unavailable>, inStatus=0xffffc368) at cmIfCommand.cxx:149:10
>>   frame #16: 0x00157d50 cmake`cmFunctionBlocker::IsFunctionBlocked(this=0x403d2710, lff=<unavailable>, status=<unavailable>) at cmFunctionBlocker.cxx:42:20
>>   frame #17: 0x002484a4 cmake`cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&, cm::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) [inlined] cmMakefile::IsFunctionBlocked(this=0x4086a000, lff=<unavailable>, status=<unavailable>) at cmMakefile.cxx:3426:40
>>   frame #18: 0x00248484 cmake`cmMakefile::ExecuteCommand(this=0x4086a000, lff=0x40873208, status=<unavailable>, deferId=optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > @ 0xffffc358) at cmMakefile.cxx:421
>>   frame #19: 0x0024a628 cmake`cmMakefile::RunListFile(this=<unavailable>, listFile=0xffffc3f0, filenametoread="/wrkdirs/usr/ports/devel/cmake/work/cmake-3.19.6/Modules/CMakeDetermineSystem.cmake", defer=0x00000000) at cmMakefile.cxx:788:11
>>   frame #20: 0x0024af34 cmake`cmMakefile::ReadListFile(this=<unavailable>, filename=<unavailable>) at cmMakefile.cxx:737:9
>>   frame #21: 0x001ce448 cmake`cmGlobalGenerator::EnableLanguage(this=<unavailable>, languages=0xffffc63c, mf=0x4086a000, optional=false) at cmGlobalGenerator.cxx:629:9
>>   frame #22: 0x00310bf4 cmake`cmGlobalUnixMakefileGenerator3::EnableLanguage(this=0x403cc900, languages=0xffffc63c, mf=0x4086a000, optional=false) at cmGlobalUnixMakefileGenerator3.cxx:57:28
>>   frame #23: 0x0025d740 cmake`cmMakefile::EnableLanguage(this=0x4086a000, lang=<unavailable>, optional=false) at cmMakefile.cxx:3748:33
>>   frame #24: 0x0027e198 cmake`cmProjectCommand(args=<unavailable>, status=<unavailable>) at cmProjectCommand.cxx:338:6
>>   frame #25: 0x002a0ca0 cmake`InvokeBuiltinCommand(command=(cmake`cmProjectCommand(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&) at cmProjectCommand.cxx:30), args=<unavailable>, status=0xffffc9b8)(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, cmExecutionStatus&), std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&) at cmState.cxx:430:10
>>   frame #26: 0x00248988 cmake`cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&, cm::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) [inlined] std::__1::__function::__value_func<bool (std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&)>::operator(this=<unavailable>, __args=<unavailable>, __args=<unavailable>)(std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&) const at functional:1884:16
>>   frame #27: 0x00248980 cmake`cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&, cm::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) [inlined] std::__1::function<bool (std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&)>::operator(this=<unavailable>, __arg=<unavailable>, __arg=<unavailable>)(std::__1::vector<cmListFileArgument, std::__1::allocator<cmListFileArgument> > const&, cmExecutionStatus&) const at functional:2556
>>   frame #28: 0x00248980 cmake`cmMakefile::ExecuteCommand(this=0x4086a000, lff=0x40884018, status=<unavailable>, deferId=<unavailable>) at cmMakefile.cxx:462
>>   frame #29: 0x0024a628 cmake`cmMakefile::RunListFile(this=<unavailable>, listFile=0xffffcae0, filenametoread="/wrkdirs/usr/ports/devel/cmake/work/cmake-3.19.6/CMakeLists.txt", defer=0x4087b010) at cmMakefile.cxx:788:11
>>   frame #30: 0x00254948 cmake`cmMakefile::Configure(this=0x4086a000) at cmMakefile.cxx:1768:9
>>   frame #31: 0x001d2e9c cmake`cmGlobalGenerator::Configure(this=0x403cc900) at cmGlobalGenerator.cxx:1242:10
>>   frame #32: 0x0031123c cmake`cmGlobalUnixMakefileGenerator3::Configure(this=<unavailable>) at cmGlobalUnixMakefileGenerator3.cxx:132:28
>>   frame #33: 0x002f5ab0 cmake`cmake::ActualConfigure(this=0xffffd018) at cmake.cxx:1928:26
>>   frame #34: 0x002f493c cmake`cmake::Configure(this=0xffffd018) at cmake.cxx:1785:19
>>   frame #35: 0x002f6fec cmake`cmake::Run(this=0xffffd018, args=0xffffcfd8, noconfigure=false) at cmake.cxx:2155:19
>>   frame #36: 0x002fdeec cmake`main [inlined] (anonymous namespace)::do_cmake(ac=<unavailable>, av=<unavailable>) at cmakemain.cxx:300:16
>>   frame #37: 0x002fde78 cmake`main(ac=<unavailable>, av=<unavailable>) at cmakemain.cxx:861
>>   frame #38: 0x0009b32c cmake`__start(argc=6, argv=<unavailable>, env=<unavailable>, ps_strings=<unavailable>, obj=0x403ea004, cleanup=0x403b7aa0) at crt1_c.c:92:7
>> 
>> -> 223 	  while ((p = cmsysProcess_WaitForData(cp, &data, &length, nullptr))) {
>> 
>>   0xfd120 <+744>:  bl     0x3672f8                  ; cmsysProcess_WaitForData at ProcessUNIX.c:1064
>> ->  0xfd124 <+748>:  cmp    r0, #0
>> 
>> 
>> For devel/gdb there are 2 cores: a gmake.core and a sh.core
>> 
>> 
>> For devel/gdb's gmake.core :
>> (jobserver_acquire not shown between #0 and #1)
>> 
>> (lldb) bt
>> * thread #1, name = 'gmake', stop reason = signal SIGSEGV
>> * frame #0: 0xffffe190
>>   frame #1: 0x0003b5f8 gmake`new_job(file=<unavailable>) at job.c:1870:21
>>   frame #2: 0x0002db80 gmake`execute_file_commands(file=<unavailable>) at commands.c:476:3 [artificial]
>>   frame #3: 0x00049acc gmake`update_file [inlined] remake_file(file=0x4036cda0) at remake.c:1234:11
>>   frame #4: 0x00049a84 gmake`update_file [inlined] update_file_1(file=<unavailable>, depth=4) at remake.c:835
>>   frame #5: 0x000494ec gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #6: 0x0004b08c gmake`check_dep(file=0x4036cda0, depth=<unavailable>, this_mtime=1, must_make_ptr=0xffff6aec) at remake.c:1024:20
>>   frame #7: 0x00049074 gmake`update_file at remake.c:572:17
>>   frame #8: 0x00048b80 gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #9: 0x0004b08c gmake`check_dep(file=0x4036cc20, depth=<unavailable>, this_mtime=1, must_make_ptr=0xffff6ba4) at remake.c:1024:20
>>   frame #10: 0x00049074 gmake`update_file at remake.c:572:17
>>   frame #11: 0x00048b80 gmake`update_file(file=<unavailable>, depth=<unavailable>) at remake.c:336
>>   frame #12: 0x000487e0 gmake`update_goal_chain(goaldeps=<unavailable>) at remake.c:151:22
>>   frame #13: 0x0003f25c gmake`main(argc=130, argv=0xffffa36c, envp=0xffffffff) at main.c:2589:13
>>   frame #14: 0x0002c0fc gmake`__start(argc=130, argv=<unavailable>, env=<unavailable>, ps_strings=<unavailable>, obj=0x400c4004, cleanup=0x40091aa0) at crt1_c.c:92:7
>> 
>> -> 1870	        got_token = jobserver_acquire (waiting_jobs != NULL);
>> 
>>   0x3b5f4 <+1288>: bl     0x50078                   ; jobserver_acquire at posixos.c:265
>> ->  0x3b5f8 <+1292>: cmp    r0, #1
>> 
>> 
>> 
>> For devel/gdb's sh.core :
>> (dowait not shown between #0 and #1)
>> 
>> (lldb) bt
>> * thread #1, name = 'sh', stop reason = signal SIGSEGV
>> * frame #0: 0xffffe190
>>   frame #1: 0x00031aa8 sh`waitcmdloop(job=0x00064230) at jobs.c:608:11
>>   frame #2: 0x00031a24 sh`waitcmd(argc=<unavailable>, argv=<unavailable>) at jobs.c:554:13
>>   frame #3: 0x00028f54 sh`evalcommand(cmd=0x403fd0e4, flags=<unavailable>, backcmd=0x00000000) at eval.c:1107:16
>>   frame #4: 0x00027800 sh`evaltree(n=0x403fd0e4, flags=<unavailable>) at eval.c:289:4
>>   frame #5: 0x000344d0 sh`cmdloop(top=1) at main.c:221:4
>>   frame #6: 0x000342f4 sh`main(argc=<unavailable>, argv=<unavailable>) at main.c:168:3
>>   frame #7: 0x0002480c sh`__start(argc=26, argv=<unavailable>, env=<unavailable>, ps_strings=<unavailable>, obj=0x400b4004, cleanup=0x40081aa0) at crt1_c.c:92:7
>> 
>> -> 608 		} while (dowait(DOWAIT_BLOCK | DOWAIT_SIG, (struct job *)NULL) != -1);
>> 
>>   0x31aa4 <+80>:  bl     0x32bcc                   ; dowait at jobs.c:1142
>> ->  0x31aa8 <+84>:  cmn    r0, #1
>> 
>> 
>> 
>> It was basically the same list of ports that had built for
>> the cortex-a72 target context (208 armv7/cortex-a7 vs. 209
>> cortex-a72). I've no evidence of native aarch64 problems.
>> 
>> The cortex-a57 self built its 209 just fine and so far the
>> a57's cortex-a53 targeted build of the 209 has had no
>> problems (built 148 with 61 yet to finish).
>> 
>> So the problem seems to be specific armv7 activity on aarch64
>> systems, or possibly on cortex-a72 specifically.
>> 
>> 
>> 
>> For reference . . .
>> 
>> The chroot used to examine the expanded .tar content reports:
>> 
>> # ~/fbsd-based-on-what-freebsd-main.sh 
>> merge-base: bad9fa56620eb82395c5ab66d300e91a0222dde2
>> merge-base: CommitDate: 2021-03-06 21:46:28 +0000
>> e48a1c379bfc (HEAD -> mm-src) mm-src snapshot for mm's patched build in git context.
>> bad9fa56620e (freebsd/main, freebsd/HEAD, pure-src, main) [PowerPC] Fix AP bringup on 32-bit AIM SMP
>> FreeBSD FBSDmacch 14.0-CURRENT FreeBSD 14.0-CURRENT mm-src-n245316-e48a1c379bfc GENERIC-NODBG  arm armv7 1400005 1400005
>> 
>> The host system reports:
>> 
>> # ~/fbsd-based-on-what-freebsd-main.sh 
>> merge-base: bad9fa56620eb82395c5ab66d300e91a0222dde2
>> merge-base: CommitDate: 2021-03-06 21:46:28 +0000
>> e48a1c379bfc (HEAD -> mm-src) mm-src snapshot for mm's patched build in git context.
>> bad9fa56620e (freebsd/main, freebsd/HEAD, pure-src, main) [PowerPC] Fix AP bringup on 32-bit AIM SMP
>> FreeBSD FBSDmacch 14.0-CURRENT FreeBSD 14.0-CURRENT mm-src-n245316-e48a1c379bfc GENERIC-NODBG  arm64 aarch64 1400005 1400005
> 
> 


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.