Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: cinnamon 18. 10. 2018, 08:14:20
-
V Ubuntu 16.04 kompilátor dmd vytváří soubory typu "ELF 64-bit LSB executable", v 18.04 se kompilují jako "ELF 64-bit LSB shared object". A nejen dmd, ale i gdc a ldc. Kompiluje se bez parametrů, např.: dmd test.d. Verze kompilátoru je stejná v 16.04 i 18.04, pro zjištění typu souboru používám file.
Asi to není nic proti ničemu, ale docela by mě zajímalo, co by mohlo být příčinou změny formátu souboru.
-
Není to jenom jiná verze programu "file", která to reportuje jinak?
-
Není to jenom jiná verze programu "file", která to reportuje jinak?
File zobrazuje na 16.04 i 18.04 stejné info (pro soubory kompilované na jedné, nebo druhé verzi Ubuntu), ale zdá se, že formát souboru ovlivňuje gcc, které se používá pro linkování. Když kompilátoru podstrčím (https://dlang.org/dmd-linux.html#environment) clang, pak se formát spustitelného souboru změní na "ELF 64-bit LSB executable".
Možná se dá nějak změnit chování gcc, ale nevím jak.
-
Co si pamatuji tak to bude tim ze se nove kompiluje se zapnutim PIE
https://askubuntu.com/questions/690631/executables-vs-shared-objects
https://askubuntu.com/a/960212
-
Co si pamatuji tak to bude tim ze se nove kompiluje se zapnutim PIE
https://askubuntu.com/questions/690631/executables-vs-shared-objects
https://askubuntu.com/a/960212
Presneji to bude nejspis tim ze se v novem ubuntu pouziva pro gcc nejaka volba neco jako
-Wl,-z,now