@krokietowy Stacktrace z runnera też niespecjalnie pomoże bo to tylko "bardziej rozpisane" wszystko dookoła źródłowego błędu braku miejsca.
Rozumiem jednak warunki NDA i spróbuję się dostosować.
Na początkek zacząłbym chyba od sklonowana repo lokalnie i zrobienia tego wszystkiego co robi runner, z odpaleniem sconsa na czele. Tam będziesz mieć rozpisane wszystkie kroki budowania binarki (bo nie samej kompilacji) i to tam musisz poszukać oszczędności.
Jeśli przykładowo to co kodzisz to software'owy emulator risc-v który składa się z emulator-x86 i libemulator to zasada jest taka żeby najpierw zbudować libemulator i trzymać już gotową bibliotekę, a potem zbudować część kliencką i dołączyć libemulator do klienta.
Do dołączania (linkowania) nie potrzebujesz nic poza samym libemulator.so oraz libemulator.a. Istnieje więc opcja takiego podzielenia procesu budowania żeby po udanym zbudowaniu biblioteki posprzątać wszystkie pliki pośrednie (.o) czy nawet kod źródłowy (bo skoro budujesz z ci/cd to za każdym razem runner robi sobie klona i odpala entrypoint).
Ja bardziej siedzę w Makefile'ach, SConstructa tylko używałem jako "klient" ale jak dobrze kminię to to właśnie tam powinieneś spróbować się podczepić i przemieszać w procesie buildu.
Jesteś w stanie np podmienić w sconsie wszystkie wrażliwe, unikalne nazwy na coś generycznego i wrzucić plik na pastebina?
@groman43 Ano kobyła, dużo zależności nie linkowanych dynamicznie, ale wklejanych bezpośrednio w projekt.
Razem z zależnościami, ma 1.8 miliona linii w C i podobną ilość w C++.
Niestety projekt prywatny, więc nie mogę udostępnić.
@mike-litoris
Bezpośredni błąd to:
Jednak przy bliższym przepatrzeniu, okazało się że to nie bezpośrednio problem linkowania, ale kopiowania po linkowaniu - nie mogę niczego podobnego znaleźć w sconstruct(używamy scons) i wygląda mi to trochę jakby to sam scons wykonywał to topiowanie