Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-03-22 19:29:32

  buri - Użytkownik

buri
Użytkownik
Skąd: Polska
Zarejestrowany: 2011-01-25

Rekompilacja kernela 2.6.38, nowy gcc, błędy

Witam,
wszystkich zacnych użytkowników forum. Postanowiłem ostatnio naprawić sobie błąd z usb na moim systemie (własny kernel) bo brakowało modułu. W czasie kompilacji wyskoczyło pełno błędów, a wcześniej nie miałem żadnych (chyba jeden ale żaden z nowych). Zmienił mi się kompilator gcc z 4.4 na 4.5.2  i znalazłem iż parę błędów odnosi się do niego. Krnel 2.6.38, system LMDE x64. Kompilacja bez init poleceniem:

Kod:

 sudo make-kpkg -j3 --revision=2.6.38 kernel_image

Czy przejmować się tymi błędami, czy da się której rozwiązać w miarę prosto? System działa tak jak wcześniej, problemów nie zauważyłem w czasie działania.

Kod:

# wina kompilatora? 4.5.2 - info z google
kernel/async.c: In function ‘async_synchronize_cookie_domain’:
kernel/async.c:270:10: warning: ‘starttime.tv64’ may be used uninitialized in this function
kernel/async.c: In function ‘async_run_entry_fn’:
kernel/async.c:122:10: warning: ‘calltime.tv64’ may be used uninitialized in this function


fs/eventpoll.c: In function ‘ep_poll’:
fs/eventpoll.c:1143:7: warning: ‘slack’ may be used uninitialized in this function

# zaznaczone tylko moduły by działał poprawnie truecrypt
drivers/md/dm.c: In function ‘split_bvec’:
drivers/md/dm.c:1053:3: warning: statement with no effect
drivers/md/dm.c: In function ‘clone_bio’:
drivers/md/dm.c:1080:3: warning: statement with no effect
drivers/md/dm-table.c: In function ‘dm_table_set_integrity’:
drivers/md/dm-table.c:1120:2: warning: statement with no effect
drivers/md/dm-table.c:1126:2: warning: statement with no effect


net/ipv4/netfilter/nf_nat_standalone.c: In function ‘nf_nat_fn’:
net/ipv4/netfilter/nf_nat_standalone.c:118:2: warning: case value ‘4’ not in enumerated type ‘enum ip_conntrack_info’

net/mac80211/tx.c: In function ‘ieee80211_subif_start_xmit’:
net/mac80211/tx.c:1753:20: warning: unused variable ‘mppath’

drivers/media/rc/ir-raw.c: In function ‘init_decoders’:
drivers/media/rc/ir-raw.c:351:2: warning: statement with no effect
drivers/media/rc/ir-raw.c:352:2: warning: statement with no effect
drivers/media/rc/ir-raw.c:353:2: warning: statement with no effect
drivers/media/rc/ir-raw.c:354:2: warning: statement with no effect
drivers/media/rc/ir-raw.c:355:2: warning: statement with no effect
drivers/media/rc/ir-raw.c:356:2: warning: statement with no effect

sound/pci/hda/patch_sigmatel.c: In function ‘stac92xx_init’:
sound/pci/hda/patch_sigmatel.c:4396:3: warning: statement with no effect
sound/pci/hda/patch_sigmatel.c: In function ‘stac92xx_resume’:
sound/pci/hda/patch_sigmatel.c:4980:3: warning: statement with no effect
sound/pci/hda/hda_codec.c: In function ‘snd_hda_mixer_amp_switch_put’:
sound/pci/hda/hda_codec.c:2250:2: warning: statement with no effect

Mój konfig: http://wklejto.pl/93526

Konfig był tworzony metodą już chyba nawet setki prób, aż zaczęły mi działać wszystkie funkcje na laptopie, więc mogą być tam zbędne rzeczy.
Jeśli potrzebne jakieś dodatkowe info proszę pisać.

Z góry dziękuje za każdą pomoc.

Pozdrawiam

Ostatnio edytowany przez buri (2011-03-22 19:42:40)

Offline

 

#2  2011-03-22 19:48:00

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: Rekompilacja kernela 2.6.38, nowy gcc, błędy

Ja tu w sumie widzę same ostrzeżenia, osobiście nawet bym na to nie zwrócił uwagi. Zresztą sam mam jajo 2.6.38 z debianowych źródeł, kompilowane debianowym gcc 4.5.2 i pewnie też miałem jakieś ostrzeżenia, tylko właśnie nie zwróciłem na nie uwagi. ;) Bo jak rozumiem jajo kompiluje się i działa?

Offline

 

#3  2011-03-22 19:50:04

  NIC - Członek DUG

NIC
Członek DUG
Skąd: Wrocław
Zarejestrowany: 2006-12-25
Serwis

Re: Rekompilacja kernela 2.6.38, nowy gcc, błędy

Ależ to nie są błędy. To tylko informacje dla programisty, że albo coś mogliby lepiej zrobić albo że programują na krawędzi poprawności :)
Tym w ogóle się nie przejmuj. Pewnie Twoje libc kompiluje się z całą chmarą tego :)


Dla przykładu
fs/eventpoll.c: In function ‘ep_poll’:
fs/eventpoll.c:1143:7: warning: ‘slack’ may be used uninitialized in this function



static int ep_poll(struct eventpoll *ep, struct epoll_event __user *events,
           int maxevents, long timeout)
{
    int res, eavail, timed_out = 0;
    unsigned long flags;
    long slack; // TO TA LINIA, NUMER 1143<====================================================
    wait_queue_t wait;
    ktime_t expires, *to = NULL;

    if (timeout > 0) {
        struct timespec end_time = ep_set_mstimeout(timeout);

        slack = select_estimate_accuracy(&end_time); //<===========================================
        to = &expires;
        *to = timespec_to_ktime(end_time);
    } else if (timeout == 0) {
        timed_out = 1;
    }

retry:
    spin_lock_irqsave(&ep->lock, flags);

    res = 0;
    if (list_empty(&ep->rdllist)) {
        /*
         * We don't have any available event to return to the caller.
         * We need to sleep here, and we will be wake up by
         * ep_poll_callback() when events will become available.
         */
        init_waitqueue_entry(&wait, current);
        __add_wait_queue_exclusive(&ep->wq, &wait);

        for (;;) {
            /*
             * We don't want to sleep if the ep_poll_callback() sends us
             * a wakeup in between. That's why we set the task state
             * to TASK_INTERRUPTIBLE before doing the checks.
             */
            set_current_state(TASK_INTERRUPTIBLE);
            if (!list_empty(&ep->rdllist) || timed_out)
                break;
            if (signal_pending(current)) {
                res = -EINTR;
                break;
            }

            spin_unlock_irqrestore(&ep->lock, flags);
            if (!schedule_hrtimeout_range(to, slack, HRTIMER_MODE_ABS)) //<==============================
                timed_out = 1;

            spin_lock_irqsave(&ep->lock, flags);
        }
        __remove_wait_queue(&ep->wq, &wait);

        set_current_state(TASK_RUNNING);
    }
    /* Is it worth to try to dig for events ? */
    eavail = !list_empty(&ep->rdllist) || ep->ovflist != EP_UNACTIVE_PTR;

    spin_unlock_irqrestore(&ep->lock, flags);

    /*
     * Try to transfer events to user space. In case we get 0 events and
     * there's still timeout left over, we go trying again in search of
     * more luck.
     */
    if (!res && eavail &&
        !(res = ep_send_events(ep, events, maxevents)) && !timed_out)
        goto retry;

    return res;
}

Z reguły timeout będzie większy od 0 więc zmienna będzie zainicjowana.

Ostatnio edytowany przez NIC (2011-03-22 19:51:04)


Stronka-dom: http://titek.victorygames.pl
Jabber: nic@jabster.pl
Hobby: kompilowanie Linuksa, Bluetooth
Dystrybucja: żadna, bliski krewny LFS, składak

Offline

 

#4  2011-03-22 20:04:57

  buri - Użytkownik

buri
Użytkownik
Skąd: Polska
Zarejestrowany: 2011-01-25

Re: Rekompilacja kernela 2.6.38, nowy gcc, błędy

Tak kernel działa, ba nawet ten USB naprawiłem, a dźwięk nie znikł - co 2 kompilacja mi się psuł zwykle.

Skoro to tylko niegroźne ostrzeżenia, to już mi lżej na sercu.

Dziękuje za informację.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)