ΕΕΛ/ΛΑΚ - Λίστες Ταχυδρομείου

Re: Gcc 4.6 (Ubuntu)

Στις 3 Οκτωβρίου 2011 10:03 μ.μ., ο χρήστης Pantelis  Koukousoulas
<pktoss [ at ] gmail [ dot ] com> έγραψε:
> 2011/10/3 Nick Kossifidis <mickflemm [ at ] gmail [ dot ] com>:
>> Και ξαναρωτάω γιατί πραγματικά δε πιστεύω ότι γράφω Κινέζικα, πού
>> ακριβώς λέω ότι φταίει κάτι/κάποιος ? Απλά ρωτάω αν έχετε δει κάτι
>> αντίστοιχο ! Έστω ότι έχω memory corrupting bug, γιατί στον 4.4.6 και
>> στον 4.5.2 δε φαίνεται και όλα δουλεύουν μια χαρά και φαίνεται στον
>> 4.6 ?
>
> FWIW, Στην πραγματικότητα σε ubuntu oneiric τουλάχιστον το θέμα αυτό
> εμφανίζεται και στον 4.5. Testcase:
>
> apt-get install libssl-dev libcurl4-openssl-dev
> wget http://github.com/bagder/curl/raw/master/docs/examples/simplessl.c
> export STUFF=`pkg-config --cflags --libs openssl libcurl`
>
> gcc-4.4 $STUFF -simplessl.c
> works ok
>
> gcc-4.5 $STUFF -simplessl.c
> boom! (collect2: ld returned 1 exit status κλπ)
>
> gcc-4.6 $STUFF -simplessl.c
> boom! (collect2: ld returned 1 exit status κλπ)
>
> Το παραπάνω οφείλεται στα patches που προσθέτει το debian/ubuntu στο
> gcc και συγκεκριμμένα στο debian/patches/gcc-as-needed.diff όπου το debian
> αλλάζει τα default linker specs.
>
> Τουτέστιν ο linker σου (ld) στο debian/ubuntu τρέχει με --as-needed
> *είτε το έβαλες εσύ είτε όχι*.
>
> Αυτό σημαίνει ότι αν έχεις ένα object foo.o που κάνει link στο libbaz
> πρέπει να βάλεις το -lbaz μετά το foo.o αλλιώς ο ld θα το παραλείψει
> με αποτέλεσμα μετά να βλέπει unresolved symbols.
>
> Άρα λύσεις στο ubuntu oneiric:
>
> 1. apt-get install gcc-4.4 και compile με αυτόν διατηρώντας τα ίδια
>    scripts που έχεις ως τώρα.
>
> 2. recompile το gcc χωρίς το gcc-as-needed.diff (not recommended
>    καθώς νομίζω ότι το --as-needed είναι καλό default).
>
> 3. να αλλάξεις το script σου και να χρησιμοποιείς CFLAGS, LDFLAGS
>    και LIBADD όπως λένε οι προδιαγραφές (recommended).
>
> Χαιρετισμούς,
> Παντελής
>

Να 'σαι καλά Παντελή ευχαριστώ για τα workarounds !


-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick

αναφορές

πλοήγηση μηνυμάτων