Seite 1 von 1

Unter neuem Linux für altes Kompilieren.

Verfasst: 20.05.2019 10:43
von Ground0
Hallo zusammen

Kämpfe gerade mit einem ärgerlichen Problem...

3 Maschinen mit:
  • openSUSE Tumbeleweed (GLIBC 2.29)
  • openSUSE LEAP 15.0 (GLIBC 2.26)
  • openSUSE LEAP 42.3 (GLIBC 2.22)
Die Tumbleweed Maschine ist meine Entwicklungsmaschine, jedoch funktionieren die GUI Programme nicht unter den älteren Distributionen.... Muss jeweils alles auf die älteste OS Version Kopieren und da Kompilieren (Git chechkout usw.)

Problem:
Gadget.pb Kompiliert

Code: Alles auswählen

renlin@linux-mvsk:~/bin/pb64beta/examples/sources> objdump -p Gadget

Gadget:     file format elf64-x86-64

...
...

  required from libm.so.6:
    0x06969189 0x00 06 GLIBC_2.29         << Das da sollte max 2.2.5 sein oder allenfalls 2.22 o.ä. (Unter openSUSE Leap 15 ist nur GLIBC_2.2.5 benötigt)
    0x09691a75 0x00 05 GLIBC_2.2.5
  required from libpthread.so.0:
    0x09691a75 0x00 04 GLIBC_2.2.5
  required from libc.so.6:
    0x0d696913 0x00 03 GLIBC_2.3
    0x09691a75 0x00 02 GLIBC_2.2.5
In einem C Programm kann ich das ganze einfach beantragen:
> __asm__(".symver realpath,realpath@GLIBC_2.2.5");

Gibt es eine Möglichkeit die unter PureBasic zu veranlassen ?

Gruss

Re: Unter neuem Linux für altes Kompilieren.

Verfasst: 26.05.2019 18:24
von Sicro
Ground0 hat geschrieben:Gibt es eine Möglichkeit die unter PureBasic zu veranlassen ?
Von PureBasic aus gibt es dafür leider keine Einstellungsmöglichkeiten.

So wie es aussieht, können mit dem Programm objcopy die notwendigen Library-Versionen nachträglich bearbeitet werden:
Linking against an old version of libc to provide greater application coverage
Ich kenne mich damit leider nicht aus.