gcc 3 -> 4 probleme

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

gcc 3 -> 4 probleme

Beitrag von lisan » 08.08.2005 07:17:05

Hi,

Habt ihr probleme code von 3 nach 4 zu portieren ?
Ich stelle fest, dass unabhaengig von anderen include graphen, mir nun ein segm. fault nach dem anderen um die ohren fliegt.

Muss wieder jede c++ lib gegen libstdc++6 gelinkt sein ?

Code: Alles auswählen

#0  0xb7b5c9b8 in std::ostream::flush () from /usr/lib/libstdc++.so.6
#1  0xb7b5cae9 in std::ostream::sentry::sentry () from /usr/lib/libstdc++.so.6
#2  0xb7b5efe5 in std::operator<< <std::char_traits<char> > () from /usr/lib/libstdc++.so.6
#3  0x08085c0e in main (argc=1, argv=0xbffff844) at program.cpp:66
Gruss,
Arvid

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 08.08.2005 09:39:11

Ich hab gcc 4 schon ne weile un hab eigentlich keine solchen Probleme erlebt bisher.

Tritt das schon bei einem kleinen Miniprogramm auf das die Standardbibliothek verwendet? Kannst du mal ein minimalbeispiel bringen wo das auftritt bzw. auch wie du das compilierst und linkst?

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 08.08.2005 12:27:52

verwendest du vielleicht irgendwelche Shared-Libraries, die noch mit der libstdc++5 gelinkt wurden ?

Gruß
gms

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 10.08.2005 15:06:12

@peschmae:
Ja, ein miniprogr. scheitert nicht.

@gms:
Ja, xercesc++

Code: Alles auswählen

asas@maggie:~/eclipse/cinsim$ ldd src/lt-cinsim
                libdl.so.2 => /lib/tls/libdl.so.2 (0xb7fca000)
        libxy.so.0 => /home/asas/eclipse/cinsim/src/routing/xy/.libs/libxy.so.0 (0xb7fc2000)
        libwf.so.0 => /home/asas/eclipse/cinsim/src/routing/westfirst/.libs/libwf.so.0 (0xb7fb9000)
        libsp.so.0 => /home/asas/eclipse/cinsim/src/routing/shortestpath/.libs/libsp.so.0 (0xb7fac000)
        liblb.so.0 => /home/asas/eclipse/cinsim/src/coroutine/localbackpressure/.libs/liblb.so.0 (0xb7fa0000)
        libdefaultarbiter.so.0 => /home/asas/eclipse/cinsim/src/Arbiter/.libs/libdefaultarbiter.so.0 (0xb7f79000)
        libdefaultrouting.so.0 => /home/asas/eclipse/cinsim/src/routing/.libs/libdefaultrouting.so.0 (0xb7f73000)
        libdefaultswitching.so.0 => /home/asas/eclipse/cinsim/src/switching/.libs/libdefaultswitching.so.0 (0xb7f6d000)
        libdefaultcoroutine.so.0 => /home/asas/eclipse/cinsim/src/coroutine/.libs/libdefaultcoroutine.so.0 (0xb7f5e000)
        libdefaultcontroller.so.0 => /home/asas/eclipse/cinsim/src/controller/.libs/libdefaultcontroller.so.0 (0xb7f55000)
        libxerces-c.so.25 => /usr/lib/libxerces-c.so.25 (0xb7bc0000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7ada000)
        libm.so.6 => /lib/tls/libm.so.6 (0xb7ab8000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7aad000)
        libc.so.6 => /lib/tls/libc.so.6 (0xb7978000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7968000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb78ae000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000)
hm, das koennte evtl. zu solchen effekten fuehren, auch wenn ich nicht genau weiss wie.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 10.08.2005 15:28:59

zumindest solltest du diese Warning bekommen:

Code: Alles auswählen

root@gms:~# g++-3.4 -o y y.cpp libx.so
/usr/bin/ld: warning: libstdc++.so.5, needed by libx.so, may conflict with libstdc++.so.6
Gruß
gms

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 11.08.2005 10:06:06

Schon, lies mal bitte "Testing Multi-ABI binaries" auf http://gcc.gnu.org/onlinedocs/libstdc++/abi.html
Hiernach sollte es kein problem sein.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 11.08.2005 11:02:10

Den Artikel kannte ich zwar schon, diesen Absatz hatte ich aber überlesen.
Der Testfall ist allerdings ein "C" Programm, welches "C" Funktionen (extern "C") aus zwei Libraries mit unterschiedlichem C++ ABI aufruft. Da sind also schon sehr viele Einschränkungen enthalten. Ich habe jetzt auch einmal diesen Testfall nachgestellt und bekommen in diesem Fall auch kein Warning vom gcc.

Sschreibst du ein(e) C oder C++ Programm/Library ?.

Gruß
gms

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 11.08.2005 11:27:44

C++

Ich krieg das wie ich grad sehe schon in den griff.
Mein gott haben die aufgeraeumt, die stdc++ ist ganzschoen umgebaut.

edit: Es laeuft ;) *freu*

Antworten