F
@john-0 sagte in GCC 15.1.0 und Modules:
@Finnegan sagte in GCC 15.1.0 und Modules:
@john-0 Cool, danke für die Info. Hatte noch gar nicht gesehen, dass überhaupt schon die 15 raus ist.
Da müsste man mal schauen, ob das auch für Module zutrifft.
Nein, es findet sich keinerlei .gcm Datei in der GCC Installation.
Ich meinte damit die Standardverzeichnisse, in denen der Compiler nach den passenden .gcm-Dateien sucht (sowas wie Standard-Library/Include-Verzeichnisse). Das wird hoffentlich nicht nur ./gcm_cache sein
Für meine Zwecke reicht ein
../gcc-15.1.0/configure --prefix=/opt/gcc-15.1.0 --program-suffix=-15 --enable-threads --enable-tls --enable-bootstrap --disable-multilib --enable-languages=ada,c,c++,fortran,lto,m2
Ja, ich dachte mir schon sowas. Das ist auch der gut ausgetretene "Standardpfad". Wenn man von dem abweicht, läuft man häufiger auf diverse Probleme, die ein eigenes Skript drumherum notwendig machen. So z.B. unter Linux für einen x86_64-w64-mingw32 Host bauen, oder noch spannender: x86_64-w64-mingw32 Host und x86_64-linux-gnu Target (nenn mich bescheuert, aber hab ich alles schon gemacht ). Besonders in solchen Cross-Szenarios treten in dem Autotools-Projekt Probleme auf, die extrem schwer zu debuggen sind und die sehr obskure Lösungen erfordern (wenn er z.B. bei irgendeiner Operation die Wand läuft, weil er eine gebaute Datei ausführen will, das aber auf dem Build-System gar nicht geht, weil es z.B. eine Windows-.exe ist. Oder dass irgendwelche Teile des Builds lustig irgendwelche Pfade und Libraries vom (Linux-) Build-System verwenden, obwohl das Host-System gar kein Linux ist).
Wenn ich wie bei MingW-W64 eine eigene, und nicht die auf dem System installierte C-Standardbibliothek dabei habe, musste ich den GCC auch bisher immer in mehreren Schritten bauen. Zumindest wenn ich sicherstellen will, dass die libc ebenfalls mit dem neuen Compiler gebaut wird: Erst die Header installieren, damit configure die findet, dann nur den Compiler bauen (ohne von libc abhängige Bibliotheken), mit diesem dann die libc und dann den Rest des GCC-Projekts (u.a. z.B. die libstdc++).
Da spielt wahrscheinlich auch noch meine Anforderung herein, dass die Toolchain "portabel" sein soll, d.h. sie kann in ein beliebiges Verzeichnis kopiert werden und verwendet dann entsprechende Standard-Library+Include-Pfade relativ zur Binary. Auch da musste ich bisher immer ein paar Dateien herumkopieren und verschieben, damit das reibungslos funktioniert. Und genau hier würde ich dann auch das Standard-Module bauen und an eine entsprechende Stelle kopieren.