Ik heb een probleem met het compilen van een SDK, waarvan ik deels alleen de shared object (.so) bestanden heb. Het probleem is dat ik deze SDK wil compilen op een debian distributie met een enigzins verouderde kernel (2.6.32-5-amd64). Dit zorgt er voor dat een aantal vereiste libraries niet voldoende up-to-date zijn.
Helaas is het geen optie om te upgraden naar een nieuwere kernel noch is het een optie om een ander systeem te zoeken voor het compilen. Dit wegens het feit dat het desbetreffende systeem een groot computer cluster is en de SDK onderdeel is van code dat nogal CPU intensief is. Wel kan ik melden dat de SDK zonder problemen compiled op een up-to-date Ubuntu systeem.
Gelukkig is dit voor de meeste libraries geen al te groot probleem, door ze simpelweg aan te bieden in LD_LIBRARY_PATH. Echter zorgt GLIBC (versie 2.11) voor problemen, omdat deze versie kennelijk niet backwards compatible is met de gebruikte kernel, ondanks het feit dat ik de configure flag --enable-kernel=2.6.18 gebruik bij het compilen van GLIBC. Wanneer ik andere versies specificeer krijg ik overigens de boodschap dat de kernel te oud is, zelfs voor toekomstige kernel versies...
GLIBC 2.11 compileerd zonder problemen, maar wanneer ik hier naar verwijs in LD_LIBRARY_PATH zorgt dit voor segmentation faults bij simpele shell commands zoals 'ls'. Als gevolg hiervan zit ik momenteel een beetje vast met het zoeken naar een oplossing voor dit probleem, dus ik hoop eigenlijk dat jullie nog ideeen hebben.
Een aantal andere mogelijkheden die ik al heb overwogen zijn:
- Maak een executable zonder dynamic linking, i.e. static linking. Het probleem hiervan is dat de benodigde .a bestanden van de SDK niet aanwezig zijn en tevens ontbreekt de source om deze te maken.
- Decompile/disassemble de .so bestanden om er vervolgens .a bestanden van te maken. Het probleem hiervan is dat dit expliciet verboden is in een aantal getekende contracten. Tevens is het me onduidelijk of dit een realistische mogelijkheid is en hoe dit precies in z'n werk gaat, gezien veel zoeken hier geen uitsluitsel over geeft.
- De eigenaar van de SDK vragen om van static libraries te voorzien. Dit is wegens bepaalde omstandigheden, waar ik hier op het forum niet dieper op in wil gaan, helaas ook geen realistische mogelijkheid.
Helaas is het geen optie om te upgraden naar een nieuwere kernel noch is het een optie om een ander systeem te zoeken voor het compilen. Dit wegens het feit dat het desbetreffende systeem een groot computer cluster is en de SDK onderdeel is van code dat nogal CPU intensief is. Wel kan ik melden dat de SDK zonder problemen compiled op een up-to-date Ubuntu systeem.
Gelukkig is dit voor de meeste libraries geen al te groot probleem, door ze simpelweg aan te bieden in LD_LIBRARY_PATH. Echter zorgt GLIBC (versie 2.11) voor problemen, omdat deze versie kennelijk niet backwards compatible is met de gebruikte kernel, ondanks het feit dat ik de configure flag --enable-kernel=2.6.18 gebruik bij het compilen van GLIBC. Wanneer ik andere versies specificeer krijg ik overigens de boodschap dat de kernel te oud is, zelfs voor toekomstige kernel versies...
GLIBC 2.11 compileerd zonder problemen, maar wanneer ik hier naar verwijs in LD_LIBRARY_PATH zorgt dit voor segmentation faults bij simpele shell commands zoals 'ls'. Als gevolg hiervan zit ik momenteel een beetje vast met het zoeken naar een oplossing voor dit probleem, dus ik hoop eigenlijk dat jullie nog ideeen hebben.
Een aantal andere mogelijkheden die ik al heb overwogen zijn:
- Maak een executable zonder dynamic linking, i.e. static linking. Het probleem hiervan is dat de benodigde .a bestanden van de SDK niet aanwezig zijn en tevens ontbreekt de source om deze te maken.
- Decompile/disassemble de .so bestanden om er vervolgens .a bestanden van te maken. Het probleem hiervan is dat dit expliciet verboden is in een aantal getekende contracten. Tevens is het me onduidelijk of dit een realistische mogelijkheid is en hoe dit precies in z'n werk gaat, gezien veel zoeken hier geen uitsluitsel over geeft.
- De eigenaar van de SDK vragen om van static libraries te voorzien. Dit is wegens bepaalde omstandigheden, waar ik hier op het forum niet dieper op in wil gaan, helaas ook geen realistische mogelijkheid.