Re: Toybox make root no longer works as expected
Rob Landley <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel |
|---|---|
| Message-ID | <[email protected]> |
On 5/2/26 01:55, John Paul Adrian Glaubitz wrote:
> On Fri, 2026-05-01 at 16:27 -0500, Rob Landley wrote:
>>> What about the patches for J2 support? And can it work with a GCC git tree like [1]?
>>
>> They're in musl-cross-make.
...
> Hmm, sounds like a bit too much to be able to do that in a short time now
> in order to be able to test the kernel patch. I guess I will merge the patch
> now anyways and send it to Linus unless someone else has done that already
> anyway.
The first commit that broke the build was 76b6f5dfb3fd adding the listns
syscall to kernel/nstree.c which then goes:
during RTL pass: final
In file included from kernel/nstree.c:8:
kernel/nstree.c: In function '__se_sys_listns':
./include/linux/syscalls.h:262:9: internal compiler error: in
change_address_1, at emit-rtl.c:2275
262 | }
\
| ^
./include/linux/syscalls.h:237:9: note: in expansion of macro
'__SYSCALL_DEFINEx'
237 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
./include/linux/syscalls.h:229:36: note: in expansion of macro
'SYSCALL_DEFINEx'
229 | #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name,
__VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/nstree.c:729:1: note: in expansion of macro 'SYSCALL_DEFINE4'
729 | SYSCALL_DEFINE4(listns, const struct ns_id_req __user *, req,
| ^~~~~~~~~~~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
{standard input}: Assembler messages:
{standard input}: Warning: end of file not at end of a line; newline
inserted
{standard input}:1640: Error: missing operand
{standard input}:1640: Error: invalid operands for opcode
{standard input}:1075: Error: displacement to undefined symbol .L375
overflows 12-bit field
{standard input}:1113: Error: displacement to undefined symbol .L491
overflows 12-bit field
{standard input}:1127: Error: displacement to undefined symbol .L376
overflows 12-bit field
{standard input}:1139: Error: displacement to undefined symbol .L493
overflows 12-bit field
{standard input}:1173: Error: displacement to undefined symbol .L494
overflows 12-bit field
{standard input}:1186: Error: displacement to undefined symbol .L286
overflows 12-bit field
{standard input}:1286: Error: displacement to undefined symbol .L320
overflows 12-bit field
{standard input}:1300: Error: displacement to undefined symbol .L656
overflows 12-bit field
{standard input}:1313: Error: displacement to undefined symbol .L499
overflows 12-bit field
{standard input}:1334: Error: displacement to undefined symbol .L384
overflows 12-bit field
{standard input}:1359: Error: displacement to undefined symbol .L365
overflows 12-bit field
{standard input}:1391: Error: displacement to undefined symbol .L385
overflows 12-bit field
{standard input}:1397: Error: displacement to undefined symbol .L500
overflows 12-bit field
{standard input}:1409: Error: displacement to undefined symbol .L386
overflows 12-bit field
{standard input}:1452: Error: displacement to undefined symbol .L346
overflows 12-bit field
{standard input}:1609: Error: pcrel too far
{standard input}:1611: Error: pcrel too far
{standard input}:1619: Error: pcrel too far
{standard input}:1620: Error: pcrel too far
make[3]: *** [scripts/Makefile.build:287: kernel/nstree.o] Error 1
The end of line not at end of file, missing operand, and invalid
operands for opcode seem relevant, and the fact it's happening in the
middle of a nested macro expansion implies that the code being fed into
the actual compiler plumbing may be nuts here, but I'd have to cc -E and
then cc -S the result to see what actually happens.
I'm not yet convinced the compiler is WRONG, it may just be missing some
error checking so it's responding to bad input with shrapnel instead of
a coherent error message.
Rob