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

Re: Gcc 4.6 (Ubuntu)

On 10/03/2011 06:40 PM, Konstantinos Margaritis wrote:

> On Monday 03 October 2011 18:09:28 Konstantinos Margaritis wrote:
>> On Monday 03 October 2011 07:07:29 Nick Kossifidis wrote:
>>> Και ξαναρωτάω γιατί πραγματικά δε πιστεύω ότι γράφω Κινέζικα, πού
>>> ακριβώς λέω ότι φταίει κάτι/κάποιος ? Απλά ρωτάω αν έχετε δει κάτι
>>> αντίστοιχο ! Έστω ότι έχω memory corrupting bug, γιατί στον 4.4.6 και
>>> στον 4.5.2 δε φαίνεται και όλα δουλεύουν μια χαρά και φαίνεται στον
>>> 4.6 ?
>>
>> Μόνο τον τελευταίο μήνα έκανα report 4 Internal Compiler Errors του gcc
>> 4.6, στο Debian -που μοιάζει με του Ubuntu καθώς χρησιμοποιούν αμφότερα το
>> gcc- linaro tree τουλάχιστον σε ARM στο οποίο δουλεύω- μαζί με τα minimal
>> testcases τους, οπότε ναι μην αγχώνεσαι, είναι συνηθισμένο. Σε σχέση με
>> τον 4.4, και λιγότερο με τον 4.5, ο 4.6 είναι πολύ buggy ακόμη, δεν είναι
>> τυχαίο που πολλά σοβαρά projects έχουν μείνει ακόμη σε 4.4.
>> Πάντως, βάζεις μαζί ldflags και cflags σε object creation, καλύτερα
>> διαχώρισέ τα. Δηλαδή, όταν παράγεις το .ο, τα $ldflags είναι αχρηστα. Και
>> έχε υπόψιν σου ότι το Ubuntu χρησιμοποιεί gold ως linker οπότε και εκεί
>> αλλάζουν αρκετά.
> 
> Μάλλον βιάστηκα. Δεν χρησιμοποιεί gold, αλλά τα πακέτα απαιτείται να γίνονται 
> σωστά build με gold. Επίσης, ίσως βρήκα μια ερμηνεία για το πρόβλημα που 
> συναντάς:


Ειναι παντα μια παρα πολυ καλη ιδεα να κανεις build ενα project σε οσο
το δυνατον περισσοτερες και πιο ανωμαλες αρχιτεκτονικες μπορεις, με οσο
το δυνατον πιο διαφορετικα build tools μπορεις να χρησιμοποιησεις.
Γραφεις συνηθως σε i386? Κανε ενα build σε SPARC64/Solaris.
Χρησιμοποιεις GCC? Περνα το απο εναν LLVM/clang. Ακομα περισσοτερο αν
εχεις ετοιμα test scenarios, και μπορεις να συγκρινεις τα αποτελεσματα
τους. Ακομα και αν δεν σκοπευεις ποτε να χρησιμοποιησεις τον κωδικα σε
αλλη πλατφορμα η αρχιτεκτονικη.

Στην καλυτερη περιπτωση θα αποκαλυψεις bugs στον κωδικα που ουτε
φανταζοσουν οτι βρισκοταν εκει.

Στην χειροτερη, θα αποκαλυψεις bugs στον compiler. Σε ενα τετοιο
προσφατο testing επεσα σε (συνηθη υποπτο) κωδικα που καταφερε να σπασει
με internal error τον static analyzer της Intel :)

αναφορές

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