Periergo provlima panw sto compile

Giorgos Keramidas keramida at ceid.upatras.gr
Sat Nov 24 18:23:19 EET 2007


On 2007-11-24 17:46, Mystical Groovy <djzet1 at otenet.gr> wrote:
>Giorgos Keramidas wrote:
>> On 2007-11-23 21:37, Mystical Groovy <djzet1 at otenet.gr> wrote:
>>> Kalispera stin lista,
>>> Mexri prin liga lepta, ola douleuan roloi sto project mou (gia IDE exw
>>> KDevelop) ospou emfanistike ena poly periergo provlima panw sto
>>> configure, entometa3i den eixa kanei kamia alagi ston kodika, apla
>>> prosthesa ena button sto gui, kai apo sinithia patisa F8 dld Build,
>>
>>> otan 3ekina to build kanei prota configure kai mou leei *** Exited with
>>> status: 2 ***
>>> an katalava kala exw provlima edw:
>>>
>>
>> Το `config.log' το κοίταξες;
>
> Agapite Giorgo,
> to config.log to koita3a, alla pou na vgalw akri ekei mesa?! :)

( Σημείωση: Δε χρειάζεται πληθυντικός.  Με κάνει να αισθάνομαι πιο γέρος
από ότι είμαι :P )

Συνήθως όταν αποτυγχάνει ένα `config-time' test, εγώ κοιτάζω το
`config.log' ψάχνοντας για build-error ή link-error στο test πρόγραμμα
που κάνει compile το `configure'.

Αν διαβάσεις το `config.log' ανάποδα από το τέλος θα βρεις:

  - Τα περιεχόμενα του "confdefs.h" (αυτό το εισάγει αυτόματα το
    `configure' script στην αρχή κάθε test προγράμματος, πριν δοκιμάσει
    να το μεταγλωττίσει

  - Τις output μεταβλητές που κάνει expand το `configure' στα αρχεία που
    δημιουργεί

  - Τις internal `cache variables' του `configure' script

Αμέσως πιο πριν υπάρχει το πρόγραμμα που έκανε build για να δει αν έχεις
libz.so library, και αν μπορεί να γίνει link ένα minimal πρόγραμμα με
αυτήν:

    [ τα περιεχόμενα του confdefs.h ]

    #include<zlib.h>

    int
    main ()
    {

      char buf[42];
      gzFile f = (gzFile) 0;
      /* this would segfault.. but we only link, don't run */
      (void) gzgets(f, buf, sizeof(buf));

      return (zlibVersion() == ZLIB_VERSION);

      ;
      return 0;
    }

Και ακριβώς πριν από αυτό το πρόγραμμα είναι το πρόβλημα...

> configure:29710: checking for libz
> configure:29750: gcc -o conftest -std=iso9899:1990 -W -Wall
> -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes
> -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -g3 -fno-inline
> -Wformat-security -Wmissing-format-attribute -I.   -D_REENTRANT
> conftest.c     -lz  >&5
> /usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../i486-slackware-linux/bin/ld:
> errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS
> reference in /usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libz.so
> /lib/libc.so.6: could not read symbols: Bad value
> collect2: ld returned 1 exit status

Δυστυχώς αυτό δείχνει ότι η libz.so που έχεις δεν είναι η σωστή έκδοση
για την standard C library (libc.so) που έχει το σύστημά σου.  Εδώ όμως
σταματάει η βοήθεια που μπορώ να προσφέρω εγώ, γιατί έχω πάψει από καιρό
να ασχολούμε με το ``package hell'' που είναι ένα τυπικό Linux base
system.

Θα πρέπει να βρεις αν υπάρχει ενημερωμένη zlib σε πακέτο για το σύστημά
σου, κι αν όχι καλή τύχη...




More information about the Linux-greek-users mailing list