[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

squeeze, x64, gcc -s -static = unexpected reloc type in static binary



*Hallo,

beim statischem und gestripptem kompilieren mit gcc bekomme ich den Fehler "unexpected reloc type in static binary". Ich konnte das in sofern eingrenzen das es vermutlich nur in x64 vorkommt. Kurze Recherchen ergaben das es evtl. etwas mit den binutils zu tun hat. Unter Arch.x64 mit einer neueren binutils Version scheint das Problem jedenfalls nicht aufzutreten. Einen Bug Report diesbezüglich konnte ich auf die Schnelle nicht finden, was aber nicht heissen muss das es keinen gibt.

Mir wurde in freenode/#debian als workaround empfohlen das strippen als zweiten Schritt mittels strip -s zu machen was zu funktionieren scheint.

Meine Frage, kann das ganze zum einen jemand bestätigen und zum anderen mal schauen ob das unter testing/sid auch so ist?

Nachzuvollziehen wäre es wie folgt:

$ echo 'int main(){return 0;}' | gcc -x c -s -static - -o a.out && ./a.out
unexpected reloc type in static binary
Segmentation fault

Mit Workaround:

$ echo 'int main(){return 0;}' | gcc -x c -static - -o a.out && strip -s a.out && ./a.out

Grüsse,
Ralf
*


Reply to: