Compilierprobleme

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
frabron
Beiträge: 8
Registriert: 09.02.2007 10:31:39

Compilierprobleme

Beitrag von frabron » 22.12.2011 09:14:54

Hallo,

ich habe Probleme beim Kompilieren von Sourcecode. Ich hoffe, hier ist der richtige Bereich für so Fragen. Ich möchte zu Testzwecken die neueste GDAL (http://www.gdal.org) Version installieren. Dazu habe ich mir die 1.9.0b Quellen gezogen. ./configure läuft noch ohne Probleme durch, doch dann bekomme ich einen Fehler beim ausführen von make hinsichtlich /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.a. Die letzen Meldungen, bevor make abbricht:

Code: Alles auswählen

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.a(functexcept.o): relocation R_X86_64_32 against `std::bad_typeid::~bad_typeid()' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [libgdal.la] Fehler 1
make[1]: Leaving directory `/home/brfr/gdal/gdal-1.9.0b1'
make: *** [check-lib] Fehler 2
Eine Recherche brachte ein paar Treffer mit der selben Meldung, doch bin ich mir nicht sicher, wo der Fehler nun liegt (GDAL, Debian) und was genau ich nun machen soll. Fehlende -dev Pakte erkenne ich schon meistens selber und kann so Probleme beheben. Doch hier? Die Meldung schlägt ja nun vor,

Code: Alles auswählen

recompile with -fPIC
zu machen. Doch wo und mit wem? Im makefile?

Frank

Achso, vergessen: Mein System ist Debian 6 mit den Standardquellen

Code: Alles auswählen

brfr@devel:~/gdal/gdal-1.9.0b1$ dpkg -l libstdc++*
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name                                        Version                                     Beschreibung
+++-===========================================-===========================================-======================================================================================================
un  libstdc++-dev                               <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++2.10-dev                           <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++2.8-dev                            <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++2.9-dev                            <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++2.9-glibc2.1-dev                   <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++3.0-dev                            <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++5-3.3-dbg                          <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++5-dbg                              <keine>                                     (keine Beschreibung vorhanden)
ii  libstdc++6                                  4.6.2-7                                     GNU Standard C++ Library v3
un  libstdc++6-4.0-dbg                          <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++6-4.1-dbg                          <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++6-4.2-dbg                          <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++6-4.3-dbg                          <keine>                                     (keine Beschreibung vorhanden)
ii  libstdc++6-4.4-dbg                          4.4.5-8                                     The GNU Standard C++ Library v3 (debugging files)
ii  libstdc++6-4.4-dev                          4.4.5-8                                     The GNU Standard C++ Library v3 (development files)
un  libstdc++6-4.4-doc                          <keine>                                     (keine Beschreibung vorhanden)
un  libstdc++6-dbg                              <keine>                                     (keine Beschreibung vorhanden)

Code: Alles auswählen

brfr@devel:~/gdal/gdal-1.9.0b1$ uname -ra 
Linux devel 2.6.32-5-amd64 #1 SMP Mon Oct 3 03:59:20 UTC 2011 x86_64 GNU/Linux

pferdefreund
Beiträge: 3799
Registriert: 26.02.2009 14:35:56

Re: Compilierprobleme

Beitrag von pferdefreund » 23.12.2011 08:23:57

Schon mal probiert, beim g++ - Aufruf -fPIC mitzugeben. Sollte irgendwo in den Makefiles auftauchen.
- oder vor dem Configure export CXXFLAGS="-fPIC" - aber das Make distclean vorher nicht vergessen.

Benutzeravatar
Evox
Beiträge: 173
Registriert: 25.04.2009 13:33:52
Wohnort: localhost

Re: Compilierprobleme

Beitrag von Evox » 23.12.2011 15:23:30

Alternativ auch Hardening abschalten ( zum an Testen))
You Disapeared In The Darkness Of The Night...

frabron
Beiträge: 8
Registriert: 09.02.2007 10:31:39

Re: Compilierprobleme

Beitrag von frabron » 09.01.2012 11:13:47

Hi,

danke für eure Beiträge. Ich habe versucht, mittels Umgebungsvariable den/das Flag zu setzen, doch das funktioniert leider nicht wie gewünscht. Wie schalte ich also Hardening ab? Ich dachte, Hardening wäre einfach eine Reihe von Massnahmen, die eine Standardinstallation gegenüber bestimmten Angriffsmöglichkeiten absichern soll?

frabron
Beiträge: 8
Registriert: 09.02.2007 10:31:39

Re: Compilierprobleme

Beitrag von frabron » 10.01.2012 13:29:44

Das Problem scheint am gcc zu hängen, zumindest deutet eine Recherche im Internet darauf hin:

Code: Alles auswählen

brfr@devel:~$ ll /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.so 
lrwxrwxrwx 1 root root 23 17. Mai 2011  /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.so -> ../../../libstdc++.so.6
zeigt einen kaputten Symlink an. Mal sehen, wie ich das am besten fixe ...

Nachtrag:
/usr/lib/libstdc++.so.6 gibbet nich, sondern "nur" libstdc++.so.5. Hab den Link jetzt auf die kleinere Version umgebogen. Mal sehen, ob das jetzt durchläuft :?:

Antworten