* Re: RH7.3 can't compile 2.6.0-test8
@ 2003-10-21 13:19 rwhron
2003-10-21 13:52 ` Marco Roeland
0 siblings, 1 reply; 8+ messages in thread
From: rwhron @ 2003-10-21 13:19 UTC (permalink / raw)
To: linux-kernel
> The Readme for 2.6.0-test6 still said that gcc 2.95 is required
test8 Changes still says gcc-2.95.3. I saw the same compile error
on RedHat 7.2. I ended up using gcc-3.3.1. Later I saw this patch:
http://marc.theaimsgroup.com/?l=linux-kernel&m=106651554401143&w=2
It's supposed to fix test8 compile with gcc-2.96 for RedHat 7.x.
--
Randy Hron
http://home.earthlink.net/~rwhron/kernel/bigbox.html
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: RH7.3 can't compile 2.6.0-test8 2003-10-21 13:19 RH7.3 can't compile 2.6.0-test8 rwhron @ 2003-10-21 13:52 ` Marco Roeland 2003-10-21 14:37 ` [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) Marco Roeland 0 siblings, 1 reply; 8+ messages in thread From: Marco Roeland @ 2003-10-21 13:52 UTC (permalink / raw) To: Linux Kernel Development; +Cc: Norman Diamond Op dinsdag 21 oktober 2003 om 09:19 uur schreef rwhron@earthlink.net het volgende: > > The Readme for 2.6.0-test6 still said that gcc 2.95 is required > > test8 Changes still says gcc-2.95.3. I saw the same compile error > on RedHat 7.2. I ended up using gcc-3.3.1. Later I saw this patch: > > http://marc.theaimsgroup.com/?l=linux-kernel&m=106651554401143&w=2 > > It's supposed to fix test8 compile with gcc-2.96 for RedHat 7.x. It seems an odd fix though, the variable tty_nr is at most set once inside the function, and is inaccessible to other functions so why it should be volatile seems unclear to me. It might solve the compilation (now that I look again the original error messages mention gcc internal representation, so the suggestion of binutils at fault seems unwarranted) but that seems by accident, not by design? Perhaps if the huge sprintf with 40+ arguments (fs/proc/array.c, line 346) amongst which several trinary operators, were to be split up into several parts, might that not solve the problem more elegantly? -- Marco Roeland ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) 2003-10-21 13:52 ` Marco Roeland @ 2003-10-21 14:37 ` Marco Roeland 2003-10-21 20:12 ` Paul Larson ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Marco Roeland @ 2003-10-21 14:37 UTC (permalink / raw) To: Linux Kernel Development; +Cc: Norman Diamond On Tuesday October 21st 2003 at 15:52 uur Marco Roeland wrote: > > http://marc.theaimsgroup.com/?l=linux-kernel&m=106651554401143&w=2 > > > > It's supposed to fix test8 compile with gcc-2.96 for RedHat 7.x. > > Perhaps if the huge sprintf with 40+ arguments (fs/proc/array.c, line 346) > amongst which several trinary operators, were to be split up into several > parts, might that not solve the problem more elegantly? Does this compile (and work) for any of you friendly RedHat 7.[23] users? In 2.6.0-test8 yet another argument was added to the monstrous sprintf. Perhaps this was just the droplet to overflow gcc-2.96's buckets? Here we split it into 3 distinct parts. --- linux-2.6.0-test8/fs/proc/array.c.orig 2003-10-21 16:18:40.000000000 +0200 +++ linux-2.6.0-test8/fs/proc/array.c 2003-10-21 16:24:42.000000000 +0200 @@ -343,9 +343,7 @@ read_lock(&tasklist_lock); ppid = task->pid ? task->real_parent->pid : 0; read_unlock(&tasklist_lock); - res = sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu \ -%lu %lu %lu %lu %lu %ld %ld %ld %ld %d %ld %llu %lu %ld %lu %lu %lu %lu %lu \ -%lu %lu %lu %lu %lu %lu %lu %lu %d %d %lu %lu\n", + res = sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu ", task->pid, task->comm, state, @@ -355,7 +353,8 @@ tty_nr, tty_pgrp, task->flags, - task->min_flt, + task->min_flt); + res += sprintf(buffer + res,"%lu %lu %lu %lu %lu %ld %ld %ld %ld %d %ld %llu %lu %ld %lu %lu %lu %lu %lu ", task->cmin_flt, task->maj_flt, task->cmaj_flt, @@ -375,7 +374,8 @@ mm ? mm->start_code : 0, mm ? mm->end_code : 0, mm ? mm->start_stack : 0, - esp, + esp); + res += sprintf(buffer + res,"%lu %lu %lu %lu %lu %lu %lu %lu %d %d %lu %lu\n", eip, /* The signal information here is obsolete. * It must be decimal for Linux 2.0 compatibility. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) 2003-10-21 14:37 ` [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) Marco Roeland @ 2003-10-21 20:12 ` Paul Larson 2003-10-21 20:46 ` bill davidsen 2003-10-22 10:36 ` Norman Diamond 2 siblings, 0 replies; 8+ messages in thread From: Paul Larson @ 2003-10-21 20:12 UTC (permalink / raw) To: Marco Roeland; +Cc: Linux Kernel Development, Norman Diamond On Tue, 2003-10-21 at 09:37, Marco Roeland wrote: > Does this compile (and work) for any of you friendly RedHat 7.[23] users? > In 2.6.0-test8 yet another argument was added to the monstrous sprintf. > Perhaps this was just the droplet to overflow gcc-2.96's buckets? Here we > split it into 3 distinct parts. Works on my machine. -Paul Larson ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) 2003-10-21 14:37 ` [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) Marco Roeland 2003-10-21 20:12 ` Paul Larson @ 2003-10-21 20:46 ` bill davidsen 2003-10-22 10:36 ` Norman Diamond 2 siblings, 0 replies; 8+ messages in thread From: bill davidsen @ 2003-10-21 20:46 UTC (permalink / raw) To: linux-kernel In article <20031021143741.GB22633@localhost>, Marco Roeland <marco.roeland@xs4all.nl> wrote: | On Tuesday October 21st 2003 at 15:52 uur Marco Roeland wrote: | | > > http://marc.theaimsgroup.com/?l=linux-kernel&m=106651554401143&w=2 | > > | > > It's supposed to fix test8 compile with gcc-2.96 for RedHat 7.x. | > | > Perhaps if the huge sprintf with 40+ arguments (fs/proc/array.c, line 346) | > amongst which several trinary operators, were to be split up into several | > parts, might that not solve the problem more elegantly? | | Does this compile (and work) for any of you friendly RedHat 7.[23] users? | In 2.6.0-test8 yet another argument was added to the monstrous sprintf. | Perhaps this was just the droplet to overflow gcc-2.96's buckets? Here we | split it into 3 distinct parts. Thank you! -- bill davidsen <davidsen@tmr.com> CTO, TMR Associates, Inc Doing interesting things with little computers since 1979. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) 2003-10-21 14:37 ` [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) Marco Roeland 2003-10-21 20:12 ` Paul Larson 2003-10-21 20:46 ` bill davidsen @ 2003-10-22 10:36 ` Norman Diamond 2 siblings, 0 replies; 8+ messages in thread From: Norman Diamond @ 2003-10-22 10:36 UTC (permalink / raw) To: Marco Roeland, Linux Kernel Development Marco Roeland asked: > Does this compile (and work) for any of you friendly RedHat 7.[23] users? > In 2.6.0-test8 yet another argument was added to the monstrous sprintf. > Perhaps this was just the droplet to overflow gcc-2.96's buckets? Here we > split it into 3 distinct parts. It didn't help in RH 7.3. Again the word エラー in the following excerpt means error. fs/proc/array.c: In function `proc_pid_stat': fs/proc/array.c:398: Unrecognizable insn: (insn/i 1325 1690 1684 (parallel[ (set (reg:SI 0 eax) (asm_operands ("") ("=a") 0[ (reg:DI 1 edx) ] [ (asm_input:DI ("A")) ] ("include/linux/times.h") 37)) (set (reg:SI 1 edx) (asm_operands ("") ("=d") 1[ (reg:DI 1 edx) ] [ (asm_input:DI ("A")) ] ("include/linux/times.h") 37)) (clobber (reg:QI 19 dirflag)) (clobber (reg:QI 18 fpsr)) (clobber (reg:QI 17 flags)) ] ) -1 (insn_list 1319 (nil)) (nil)) fs/proc/array.c:398: confused by earlier errors, bailing out make[2]: *** [fs/proc/array.o] エラー 1 make[1]: *** [fs/proc] エラー 2 make: *** [fs] エラー 2 Line 37 of include/linux/times.h is the do_div call shown below. static inline u64 jiffies_64_to_clock_t(u64 x) { #if (HZ % USER_HZ)==0 do_div(x, HZ / USER_HZ); ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c)
@ 2003-10-23 1:16 ndiamond
2003-10-23 7:48 ` Marco Roeland
0 siblings, 1 reply; 8+ messages in thread
From: ndiamond @ 2003-10-23 1:16 UTC (permalink / raw)
To: marco.roeland, linux-kernel
Marco Roeland wrote (privately but I hope not secretly :-)
> Perhaps working out the jiffies call in a separate variable
> long long tmp = jiffies_64_to_clock_t(...); and then using
> that in the sprintf() might work?
unsigned long long.
It worked. I made this change after applying the patch
previously posted by Mr. Roeland. I think the present
workaround might also work without the previous patch,
and will try it that way if I have time.
Again this is with Red Hat's nonstandard gcc 2.96.
At the moment it looks like Red Hat's gcc is to blame here.
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) 2003-10-23 1:16 ndiamond @ 2003-10-23 7:48 ` Marco Roeland 0 siblings, 0 replies; 8+ messages in thread From: Marco Roeland @ 2003-10-23 7:48 UTC (permalink / raw) To: ndiamond; +Cc: Linux Kernel Development On Thursday Oktober 23 2003 at 10:16 uur Norman Diamond wrote: > Marco Roeland wrote (privately but I hope not secretly :-) I hope you didn't circumvent any digital information rights management schemes? ;-) No, my fault. Private communication is very un-open-source! I wrote without access to sources (only some recent patches available) in a very noisy office and was afraid my post would be as clear as a long quote from Ulysses. > > Perhaps working out the jiffies call in a separate variable > > long long tmp = jiffies_64_to_clock_t(...); and then using > > that in the sprintf() might work? > > unsigned long long. > > It worked. I made this change after applying the patch > previously posted by Mr. Roeland. I think the present > workaround might also work without the previous patch, > and will try it that way if I have time. Ok! As the compiler seems to be at the edge of overasking its capabilities (three *different* simplifications which each should normally haven't made any difference *did* make it compile for different people with gcc 2.96) it might not be a bad idea to apply both simplifications (the 'volatile' solution I think is not proper C here). > Again this is with Red Hat's nonstandard gcc 2.96. Well it is standard to RedHat 7! If a slight simplification makes it work again whats wrong with that, as long as its proper C? Ok, so we have something like this: Simplify a longish expression so that gcc 2.96 doesn't choke on it. --- linux-2.6.0-test8/fs/proc/array.c.orig 2003-10-21 16:18:40.000000000 +0200 +++ linux-2.6.0-test8/fs/proc/array.c 2003-10-23 09:30:27.000000000 +0200 @@ -302,6 +302,7 @@ pid_t ppid; int num_threads = 0; struct mm_struct *mm; + unsigned long long starttime; state = *get_task_state(task); vsize = eip = esp = 0; @@ -343,9 +344,7 @@ read_lock(&tasklist_lock); ppid = task->pid ? task->real_parent->pid : 0; read_unlock(&tasklist_lock); - res = sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu \ -%lu %lu %lu %lu %lu %ld %ld %ld %ld %d %ld %llu %lu %ld %lu %lu %lu %lu %lu \ -%lu %lu %lu %lu %lu %lu %lu %lu %d %d %lu %lu\n", + res = sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu ", task->pid, task->comm, state, @@ -355,7 +354,9 @@ tty_nr, tty_pgrp, task->flags, - task->min_flt, + task->min_flt); + starttime = jiffies_64_to_clock_t(task->start_time - INITIAL_JIFFIES); + res += sprintf(buffer + res,"%lu %lu %lu %lu %lu %ld %ld %ld %ld %d %ld %llu %lu %ld %lu %lu %lu %lu %lu ", task->cmin_flt, task->maj_flt, task->cmaj_flt, @@ -367,15 +368,15 @@ nice, num_threads, jiffies_to_clock_t(task->it_real_value), - (unsigned long long) - jiffies_64_to_clock_t(task->start_time - INITIAL_JIFFIES), + starttime, vsize, mm ? mm->rss : 0, /* you might want to shift this left 3 */ task->rlim[RLIMIT_RSS].rlim_cur, mm ? mm->start_code : 0, mm ? mm->end_code : 0, mm ? mm->start_stack : 0, - esp, + esp); + res += sprintf(buffer + res,"%lu %lu %lu %lu %lu %lu %lu %lu %d %d %lu %lu\n", eip, /* The signal information here is obsolete. * It must be decimal for Linux 2.0 compatibility. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2003-10-23 7:50 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-10-21 13:19 RH7.3 can't compile 2.6.0-test8 rwhron 2003-10-21 13:52 ` Marco Roeland 2003-10-21 14:37 ` [PATCH] RH7.3 can't compile 2.6.0-test8 (fs/proc/array.c) Marco Roeland 2003-10-21 20:12 ` Paul Larson 2003-10-21 20:46 ` bill davidsen 2003-10-22 10:36 ` Norman Diamond -- strict thread matches above, loose matches on Subject: below -- 2003-10-23 1:16 ndiamond 2003-10-23 7:48 ` Marco Roeland
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).