[Bug 281600] lang/rust failing to build on risc-v (again)

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 30 Sep 2024 11:56:48 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281600

--- Comment #12 from Dennis Clarke <dclarke@blastwave.org> ---
(In reply to dgilbert from comment #11)


If there will be anything that smells like a patch then I will post it
here.

Thus far the SiFive Unmatched is just slowly, painfully slow and tedious
and grinding along. I am glad I put a hard drive activity led on that
board just so I know it is doing something. From time to time it blinks.

So here we are in day three of the lang/rust compile :

 ID  TOTAL          ORIGIN   PKGNAME     PHASE PHASE       TMPFS      CPU% MEM%
[02] 3D:04:18:44 lang/rust | rust-1.81.0 build 3D:04:09:39 12.88 GiB 71.1% 3.3%

Being curious I went looking at the logs where I see things are indeed
bubbling along. Finally into something called stage1. The bootstrap is
happening where I see this binary exists inside a jail :

console# file
/poudriere/data/.m/150rv64-latest/02/wrkdirs/usr/ports/lang/rust/work/bootstrap/bin/cargo
/poudriere/data/.m/150rv64-latest/02/wrkdirs/usr/ports/lang/rust/work/bootstrap/bin/cargo:
ELF 64-bit LSB pie executable, UCB RISC-V, RVC, double-float ABI, version 1
(SYSV), dynamically linked, interpreter /libexec/ld-elf.so.1, FreeBSD-style,
with debug_info, not stripped
console# 
console# readelf -delV
/poudriere/data/.m/150rv64-latest/02/wrkdirs/usr/ports/lang/rust/work/bootstrap/bin/cargo
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            NONE
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           RISC-V
  Version:                           0x1
  Entry point address:               0x865120
  Start of program headers:          64 (bytes into file)
  Start of section headers:          49222768 (bytes into file)
  Flags:                             0x5, double-float ABI, RVC
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         12
  Size of section headers:           64 (bytes)
  Number of section headers:         46
  Section header string table index: 44

Elf file type is DYN (Shared object file)
Entry point 0x865120
There are 12 program headers, starting at offset 64

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flg    Align
  PHDR           0x0000000000000040 0x0000000000000040 0x0000000000000040
                 0x00000000000002a0 0x00000000000002a0  R      0x8
  INTERP         0x00000000000002e0 0x00000000000002e0 0x00000000000002e0
                 0x0000000000000015 0x0000000000000015  R      0x1
      [Requesting program interpreter: /libexec/ld-elf.so.1]
  LOAD           0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000863f70 0x0000000000863f70  R      0x1000
  LOAD           0x0000000000863f70 0x0000000000864f70 0x0000000000864f70
                 0x00000000010597d0 0x00000000010597d0  R E    0x1000
  LOAD           0x00000000018bd740 0x00000000018bf740 0x00000000018bf740
                 0x000000000013e0d0 0x000000000013e0d0  RW     0x1000
  LOAD           0x00000000019fb810 0x00000000019fe810 0x00000000019fe810
                 0x0000000000020990 0x0000000000025df0  RW     0x1000
  TLS            0x00000000018bd740 0x00000000018bf740 0x00000000018bf740
                 0x0000000000000021 0x00000000000002e0  R      0x8
  DYNAMIC        0x00000000019f97a8 0x00000000019fb7a8 0x00000000019fb7a8
                 0x00000000000001e0 0x00000000000001e0  RW     0x8
  GNU_RELRO      0x00000000018bd740 0x00000000018bf740 0x00000000018bf740
                 0x000000000013e0d0 0x000000000013e8c0  R      0x1
  GNU_EH_FRAME   0x000000000068069c 0x000000000068069c 0x000000000068069c
                 0x000000000005e1bc 0x000000000005e1bc  R      0x4
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     0
  NOTE           0x00000000000002f8 0x00000000000002f8 0x00000000000002f8
                 0x0000000000000030 0x0000000000000030  R      0x4

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .note.tag .dynsym .gnu.version .gnu.version_r .gnu.hash .hash
.dynstr .rela.dyn .rela.plt .rodata .gcc_except_table .eh_frame_hdr .eh_frame 
   03     .text .init .fini .plt 
   04     .tdata .tbss .ctors .dtors .jcr .init_array .data.rel.ro .dynamic
.got .got.plt 
   05     .data .sdata .sbss .bss 
   06     .tdata .tbss 
   07     .dynamic 
   08     .tdata .tbss .ctors .dtors .jcr .init_array .data.rel.ro .dynamic
.got .got.plt 
   09     .eh_frame_hdr 
   10     
   11     .note.tag 
There are 46 section headers, starting at offset 0x2ef1470:

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .interp           PROGBITS         00000000000002e0  000002e0
       0000000000000015  0000000000000000   A       0     0     1
  [ 2] .note.tag         NOTE             00000000000002f8  000002f8
       0000000000000030  0000000000000000   A       0     0     4
  [ 3] .dynsym           DYNSYM           0000000000000328  00000328
       0000000000001a88  0000000000000018   A       8     1     8
  [ 4] .gnu.version      SUNW_versym      0000000000001db0  00001db0
       0000000000000236  0000000000000002   A       3     0     2
  [ 5] .gnu.version_r    SUNW_verneed     0000000000001fe8  00001fe8
       0000000000000110  0000000000000000   A       8     4     4
  [ 6] .gnu.hash         GNU_HASH         00000000000020f8  000020f8
       0000000000000028  0000000000000000   A       3     0     8
  [ 7] .hash             HASH             0000000000002120  00002120
       00000000000008e0  0000000000000004   A       3     0     4
  [ 8] .dynstr           STRTAB           0000000000002a00  00002a00
       0000000000000cec  0000000000000000   A       0     0     1
  [ 9] .rela.dyn         RELA             00000000000036f0  000036f0
       00000000001b6510  0000000000000018   A       3     0     8
  [10] .rela.plt         RELA             00000000001b9c00  001b9c00
       0000000000001950  0000000000000018  AI       3    28     8
  [11] .rodata           PROGBITS         00000000001bb580  001bb580
       000000000030eca3  0000000000000000 AMS       0     0     64
  [12] .gcc_except_table PROGBITS         00000000004ca224  004ca224
       00000000001b6478  0000000000000000   A       0     0     4
  [13] .eh_frame_hdr     PROGBITS         000000000068069c  0068069c
       000000000005e1bc  0000000000000000   A       0     0     4
  [14] .eh_frame         PROGBITS         00000000006de858  006de858
       0000000000185718  0000000000000000   A       0     0     8
  [15] .text             PROGBITS         0000000000864f70  00863f70
       00000000010586a6  0000000000000000  AX       0     0     16
  [16] .init             PROGBITS         00000000018bd616  018bc616
       0000000000000012  0000000000000000  AX       0     0     1
  [17] .fini             PROGBITS         00000000018bd628  018bc628
       0000000000000012  0000000000000000  AX       0     0     1
  [18] .plt              PROGBITS         00000000018bd640  018bc640
       0000000000001100  0000000000000000  AX       0     0     16
  [19] .tdata            PROGBITS         00000000018bf740  018bd740
       0000000000000021  0000000000000000 WAT       0     0     8
  [20] .tbss             NOBITS           00000000018bf768  018bd761
       00000000000002b8  0000000000000000 WAT       0     0     8
  [21] .ctors            PROGBITS         00000000018bf768  018bd768
       0000000000000010  0000000000000000  WA       0     0     8
  [22] .dtors            PROGBITS         00000000018bf778  018bd778
       0000000000000010  0000000000000000  WA       0     0     8
  [23] .jcr              PROGBITS         00000000018bf788  018bd788
       0000000000000008  0000000000000000  WA       0     0     8
  [24] .init_array       INIT_ARRAY       00000000018bf790  018bd790
       0000000000000010  0000000000000000  WA       0     0     8
  [25] .data.rel.ro      PROGBITS         00000000018bf7a0  018bd7a0
       000000000013c008  0000000000000000  WA       0     0     8
  [26] .dynamic          DYNAMIC          00000000019fb7a8  019f97a8
       00000000000001e0  0000000000000010  WA       8     0     8
  [27] .got              PROGBITS         00000000019fb988  019f9988
       0000000000001608  0000000000000000  WA       0     0     8
  [28] .got.plt          PROGBITS         00000000019fcf90  019faf90
       0000000000000880  0000000000000000  WA       0     0     8
  [29] .data             PROGBITS         00000000019fe810  019fb810
       000000000000df00  0000000000000000  WA       0     0     8
  [30] .sdata            PROGBITS         0000000001a0c710  01a09710
       0000000000012a90  0000000000000000  WA       0     0     8
  [31] .sbss             NOBITS           0000000001a1f1a0  01a1c1a0
       0000000000000121  0000000000000000  WA       0     0     8
  [32] .bss              NOBITS           0000000001a1f300  01a1c1a0
       0000000000005300  0000000000000000  WA       0     0     64
  [33] .debug_loc        PROGBITS         0000000000000000  01a1c1a0
       0000000000000440  0000000000000000           0     0     1
  [34] .debug_abbrev     PROGBITS         0000000000000000  01a1c5e0
       0000000000000390  0000000000000000           0     0     1
  [35] .debug_info       PROGBITS         0000000000000000  01a1c970
       000000000000083b  0000000000000000           0     0     1
  [36] .debug_str        PROGBITS         0000000000000000  01a1d1ab
       00000000000002bd  0000000000000001  MS       0     0     1
  [37] .comment          PROGBITS         0000000000000000  01a1d468
       00000000000000f6  0000000000000001  MS       0     0     1
  [38] .riscv.attributes LOPROC+0x3       0000000000000000  01a1d55e
       000000000000004a  0000000000000000           0     0     1
  [39] .debug_frame      PROGBITS         0000000000000000  01a1d5a8
       0000000000000150  0000000000000000           0     0     8
  [40] .debug_line       PROGBITS         0000000000000000  01a1d6f8
       00000000000006f7  0000000000000000           0     0     1
  [41] .debug_aranges    PROGBITS         0000000000000000  01a1ddef
       00000000000000b0  0000000000000000           0     0     1
  [42] .debug_ranges     PROGBITS         0000000000000000  01a1de9f
       00000000000000a0  0000000000000000           0     0     1
  [43] .symtab           SYMTAB           0000000000000000  01a1df40
       0000000000bd6678  0000000000000018          45   506846     8
  [44] .shstrtab         STRTAB           0000000000000000  025f45b8
       00000000000001af  0000000000000000           0     0     1
  [45] .strtab           STRTAB           0000000000000000  025f4767
       00000000008fcd07  0000000000000000           0     0     1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

Dynamic section at offset 0x19f97a8 contains 30 entries:
  Tag                Type                  Name/Value
 0x000000000000001d RUNPATH              Library runpath: [$ORIGIN/../lib]
 0x0000000000000001 NEEDED               Shared library: [libthr.so.3]
 0x0000000000000001 NEEDED               Shared library: [libgcc_s.so.1]
 0x0000000000000001 NEEDED               Shared library: [libc.so.7]
 0x0000000000000001 NEEDED               Shared library: [libm.so.5]
 0x000000000000001e FLAGS                ORIGIN BIND_NOW
 0x000000006ffffffb FLAGS_1              NOW ORIGIN PIE
 0x0000000000000015 DEBUG                0x0
 0x0000000000000007 RELA                 0x36f0
 0x0000000000000008 RELASZ               1795344 (bytes)
 0x0000000000000009 RELAENT              24 (bytes)
 0x000000006ffffff9 RELACOUNT            74731
 0x0000000000000017 JMPREL               0x1b9c00
 0x0000000000000002 PLTRELSZ             6480 (bytes)
 0x0000000000000003 PLTGOT               0x19fcf90
 0x0000000000000014 PLTREL               RELA
 0x0000000000000006 SYMTAB               0x328
 0x000000000000000b SYMENT               24 (bytes)
 0x0000000000000005 STRTAB               0x2a00
 0x000000000000000a STRSZ                3308 (bytes)
 0x000000006ffffef5 GNU_HASH             0x20f8
 0x0000000000000004 HASH                 0x2120
 0x0000000000000019 INIT_ARRAY          
 0x000000000000001b INIT_ARRAYSZ         16 (bytes)
 0x000000000000000c INIT                 0x18bd616
 0x000000000000000d FINI                 0x18bd628
 0x000000006ffffff0 VERSYM               0x1db0
 0x000000006ffffffe VERNEED              0x1fe8
 0x000000006fffffff VERNEEDNUM           4
 0x0000000000000000 NULL                 0x0

Version symbol section (.gnu.version):
  000:   0 *local*         2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  004:   2 FBSD_1.0        1 *global*        2 FBSD_1.0        3 GCC_3.0      
  008:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  00c:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  010:   2 FBSD_1.0        2 FBSD_1.0        4 FBSD_1.2        5 FBSD_1.0     
  014:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        6 FBSD_1.0     
  018:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  01c:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  020:   2 FBSD_1.0        6 FBSD_1.0        6 FBSD_1.0        6 FBSD_1.0     
  024:   6 FBSD_1.0        2 FBSD_1.0        6 FBSD_1.0        6 FBSD_1.0     
  028:   6 FBSD_1.0        6 FBSD_1.0        6 FBSD_1.0        6 FBSD_1.0     
  02c:   6 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  030:   2 FBSD_1.0        2 FBSD_1.0        6 FBSD_1.0        7 FBSD_1.5     
  034:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  038:   2 FBSD_1.0        7 FBSD_1.5        2 FBSD_1.0        2 FBSD_1.0     
  03c:   2 FBSD_1.0        2 FBSD_1.0        8 FBSD_1.3        2 FBSD_1.0     
  040:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        7 FBSD_1.5     
  044:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  048:   2 FBSD_1.0        6 FBSD_1.0        6 FBSD_1.0        6 FBSD_1.0     
  04c:   6 FBSD_1.0        6 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  050:   9 FBSD_1.1        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  054:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        6 FBSD_1.0     
  058:   6 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  05c:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  060:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  064:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  068:   7 FBSD_1.5        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  06c:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  070:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  074:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  078:   6 FBSD_1.0        6 FBSD_1.0        6 FBSD_1.0        6 FBSD_1.0     
  07c:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  080:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  084:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  088:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  08c:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  090:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  094:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  098:   5 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        8 FBSD_1.3     
  09c:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  0a0:   6 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  0a4:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  0a8:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  0ac:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  0b0:   2 FBSD_1.0        a FBSD_1.2        2 FBSD_1.0        2 FBSD_1.0     
  0b4:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  0b8:   2 FBSD_1.0        7 FBSD_1.5        6 FBSD_1.0        6 FBSD_1.0     
  0bc:   6 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  0c0:   2 FBSD_1.0        2 FBSD_1.0        5 FBSD_1.0        b GCC_4.6.0    
  0c4:   b GCC_4.6.0       b GCC_4.6.0       b GCC_4.6.0       b GCC_4.6.0    
  0c8:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  0cc:   b GCC_4.6.0       b GCC_4.6.0       6 FBSD_1.0        6 FBSD_1.0     
  0d0:   6 FBSD_1.0        6 FBSD_1.0        b GCC_4.6.0       b GCC_4.6.0    
  0d4:   b GCC_4.6.0       b GCC_4.6.0       2 FBSD_1.0        2 FBSD_1.0     
  0d8:   2 FBSD_1.0        6 FBSD_1.0        2 FBSD_1.0        a FBSD_1.2     
  0dc:   9 FBSD_1.1        9 FBSD_1.1        2 FBSD_1.0        2 FBSD_1.0     
  0e0:   c FBSD_1.4        c FBSD_1.4        8 FBSD_1.3        2 FBSD_1.0     
  0e4:   2 FBSD_1.0        9 FBSD_1.1        6 FBSD_1.0        6 FBSD_1.0     
  0e8:   6 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        6 FBSD_1.0     
  0ec:   9 FBSD_1.1        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  0f0:   2 FBSD_1.0        d FBSD_1.7        9 FBSD_1.1        9 FBSD_1.1     
  0f4:   9 FBSD_1.1        9 FBSD_1.1        9 FBSD_1.1        2 FBSD_1.0     
  0f8:   2 FBSD_1.0        9 FBSD_1.1        9 FBSD_1.1        9 FBSD_1.1     
  0fc:   9 FBSD_1.1        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  100:   2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0        2 FBSD_1.0     
  104:   3 GCC_3.0         3 GCC_3.0         3 GCC_3.0         e GCC_4.2.0    
  108:   3 GCC_3.0         3 GCC_3.0         3 GCC_3.0         2 FBSD_1.0     
  10c:   7 FBSD_1.5        2 FBSD_1.0        9 FBSD_1.1        2 FBSD_1.0     
  110:   2 FBSD_1.0        2 FBSD_1.0        8 FBSD_1.3        6 FBSD_1.0     
  114:   6 FBSD_1.0        6 FBSD_1.0        3 GCC_3.0         3 GCC_3.0      
  118:   1 *global*        1 *global*        1 *global*     

Version needed section (.gnu.version_r):
  0x0000 vn_version: 1 vn_file: libthr.so.3 vn_cnt: 1
  0x0040   vna_name: FBSD_1.0 vna_flags: 0 vna_other: 6
  0x0010 vn_version: 1 vn_file: libgcc_s.so.1 vn_cnt: 3
  0x0050   vna_name: GCC_3.0 vna_flags: 0 vna_other: 3
  0x0060   vna_name: GCC_4.2.0 vna_flags: 0 vna_other: 14
  0x0070   vna_name: GCC_4.6.0 vna_flags: 0 vna_other: 11
  0x0020 vn_version: 1 vn_file: libc.so.7 vn_cnt: 7
  0x0080   vna_name: FBSD_1.0 vna_flags: 0 vna_other: 2
  0x0090   vna_name: FBSD_1.1 vna_flags: 0 vna_other: 9
  0x00a0   vna_name: FBSD_1.2 vna_flags: 0 vna_other: 10
  0x00b0   vna_name: FBSD_1.3 vna_flags: 0 vna_other: 8
  0x00c0   vna_name: FBSD_1.4 vna_flags: 0 vna_other: 12
  0x00d0   vna_name: FBSD_1.5 vna_flags: 0 vna_other: 7
  0x00e0   vna_name: FBSD_1.7 vna_flags: 0 vna_other: 13
  0x0030 vn_version: 1 vn_file: libm.so.5 vn_cnt: 2
  0x00f0   vna_name: FBSD_1.0 vna_flags: 0 vna_other: 5
  0x0100   vna_name: FBSD_1.2 vna_flags: 0 vna_other: 4
console# 

Lovely, looks like rust has a hard dependency on libgcc_s.so.1 

Day three with the COMPAT11 in place on FreeBSD 15.0-CURRENT.

-- 
You are receiving this mail because:
You are on the CC list for the bug.