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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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:
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.
# 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
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
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)
Offline
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