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

From: Mark Millard <marklmi_at_yahoo.com>
Date: Tue, 9 Mar 2021 18:54:43 -0800
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_at_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> > > _at_ 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> > > _at_ 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> > > _at_ 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)
Received on Wed Mar 10 2021 - 01:54:52 UTC

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