lkml.org 
[lkml]   [2003]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Linux 2.6.0-test9
On Sunday Oktober 26th 2003 at 10:32 uur Shane Shrybman wrote:

> gcc2.96, from Mandrake 8.2 (I would suspect that Redhat 7.* releases are
> in this boat too) has a bug that prevents the compilation -test9.

Yes, several people have reported this for the gcc 2.96 included in
RedHat 7.[23] as well. It started with 2.6.0-test8.

> fs/proc/array.c: In function `proc_pid_stat':
> fs/proc/array.c:398: Unrecognizable insn:
> (insn/i 1337 1673 1667 (parallel[
> ...

> and a little patch that resolves it for me
>
> diff -ur linux-2.6.0-test9/fs/proc/array.c
> linux-2.6.0-test9-A/fs/proc/array.c
> --- linux-2.6.0-test9/fs/proc/array.c Sat Oct 25 18:21:46 2003
> +++ linux-2.6.0-test9-A/fs/proc/array.c Sat Oct 25 19:14:15 2003
> @@ -295,7 +295,8 @@
> {
> unsigned long vsize, eip, esp, wchan;
> long priority, nice;
> - int tty_pgrp = -1, tty_nr = 0;
> + int tty_pgrp = -1;
> + volatile int tty_nr = 0;
> sigset_t sigign, sigcatch;
> char state;
> int res;
>

Here is another patch which solves the same problem in a different way!
There was a thread with some discussion on it several days ago; I objected
against the apparent magic in the use of 'volatile' here. It obviously
solves the compilation for you, but I wonder is there some deeper reason
it's used?

The following different patch (sent earlier in the mentioned thread)
'solves' this compilation issue as well by just simplifying and factoring
out some stuff. It's against 2.6.0-test8 but applies against 2.6.0-test9
and 2.6.0-test8-mm1 as well.

--- 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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:58    [W:0.030 / U:0.492 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site