linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.4.xx won't recompile.
@ 2001-08-18 17:57 Fred Jackson
  2001-08-18 18:07 ` Magnus Naeslund(f)
  2001-08-18 18:07 ` Fred Jackson
  0 siblings, 2 replies; 9+ messages in thread
From: Fred Jackson @ 2001-08-18 17:57 UTC (permalink / raw)
  To: linux-kernel



Hi ya,

I have a Redhat 7.1 system practically out of the box, and though I 
had no problem compiling 2.4.9 the first time around, I can't 
recompile it at all without deleting the directory and untaring the 
distribution again. 

any ideas?

thanks in advance!

Fred

I start with the usual 
make mrproper
make xconfig ( I load a kernel config file - originally created with 
2.4.8) 
make bzImage
make modules
make modules_install
make install

(i've already edited lilo.conf and the links in the /boot directory)


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.4.xx won't recompile.
  2001-08-18 17:57 2.4.xx won't recompile Fred Jackson
@ 2001-08-18 18:07 ` Magnus Naeslund(f)
  2001-08-18 18:18   ` Tony Hoyle
  2001-08-18 18:07 ` Fred Jackson
  1 sibling, 1 reply; 9+ messages in thread
From: Magnus Naeslund(f) @ 2001-08-18 18:07 UTC (permalink / raw)
  To: Fred Jackson; +Cc: linux-kernel


From: "Fred Jackson" <fred@arkansaswebs.com>
> 
[snipi]
> 
> I start with the usual 
> make mrproper
> make xconfig ( I load a kernel config file - originally created with 
> 2.4.8) 
> make bzImage
> make modules
> make modules_install
> make install
> 
> (i've already edited lilo.conf and the links in the /boot directory)
> 

Isn't it more safe to do it like this:

make mrproper
cp ../linux-2.4.8/.config .
make oldconfig
make xconfig
make bzImage && make modules && make modules_install && make install

?
I thought this was the proper way to do it, no?

Magnus

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 Programmer/Networker [|] Magnus Naeslund
 PGP Key: http://www.genline.nu/mag_pgp.txt
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.4.xx won't recompile.
  2001-08-18 17:57 2.4.xx won't recompile Fred Jackson
  2001-08-18 18:07 ` Magnus Naeslund(f)
@ 2001-08-18 18:07 ` Fred Jackson
  1 sibling, 0 replies; 9+ messages in thread
From: Fred Jackson @ 2001-08-18 18:07 UTC (permalink / raw)
  To: linux-kernel

additional info

recompiling results in parse errors immediately.
output follows
________________________________________________________
[root@bits linux]# make bzImage
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o 
scripts/split-include scripts/split-include.c
scripts/split-include include/linux/autoconf.h include/config
gcc -D__KERNEL__ -I/b2/sw/linux-2.4.9/include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer 
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 
-march=k6   -c -o init/main.o init/main.c
In file included from /b2/sw/linux-2.4.9/include/linux/fs.h:19,
                 from 
/b2/sw/linux-2.4.9/include/linux/capability.h:17,
                 from /b2/sw/linux-2.4.9/include/linux/binfmts.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/sched.h:9,
                 from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/dcache.h: In function `dget':
/b2/sw/linux-2.4.9/include/linux/dcache.h:244: warning: implicit 
declaration of function `printk'
In file included from /b2/sw/linux-2.4.9/include/asm/semaphore.h:39,
                 from /b2/sw/linux-2.4.9/include/linux/fs.h:198,
                 from 
/b2/sw/linux-2.4.9/include/linux/capability.h:17,
                 from /b2/sw/linux-2.4.9/include/linux/binfmts.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/sched.h:9,
                 from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/asm/system.h: At top level:
/b2/sw/linux-2.4.9/include/asm/system.h:12: parse error before `('
In file included from /b2/sw/linux-2.4.9/include/linux/rwsem.h:27,
                 from /b2/sw/linux-2.4.9/include/asm/semaphore.h:42,
                 from /b2/sw/linux-2.4.9/include/linux/fs.h:198,
                 from 
/b2/sw/linux-2.4.9/include/linux/capability.h:17,
                 from /b2/sw/linux-2.4.9/include/linux/binfmts.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/sched.h:9,
                 from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/asm/rwsem.h:46: parse error before `('
/b2/sw/linux-2.4.9/include/asm/rwsem.h:47: parse error before `('
/b2/sw/linux-2.4.9/include/asm/rwsem.h:48: parse error before `('
In file included from 
/b2/sw/linux-2.4.9/include/linux/capability.h:17,
                 from /b2/sw/linux-2.4.9/include/linux/binfmts.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/sched.h:9,
                 from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/fs.h: In function `put_bh':
/b2/sw/linux-2.4.9/include/linux/fs.h:1082: warning: implicit 
declaration of function `barrier'
/b2/sw/linux-2.4.9/include/linux/fs.h: At top level:
/b2/sw/linux-2.4.9/include/linux/fs.h:1123: parse error before `('
/b2/sw/linux-2.4.9/include/linux/fs.h:1124: parse error before `('
/b2/sw/linux-2.4.9/include/linux/fs.h: In function 
`mark_buffer_dirty_inode':
/b2/sw/linux-2.4.9/include/linux/fs.h:1146: warning: implicit 
declaration of function `mark_buffer_dirty'
In file included from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/sched.h: At top level:
/b2/sw/linux-2.4.9/include/linux/sched.h:153: parse error before `('
In file included from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/sched.h:551: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:552: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:553: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:554: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:556: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:557: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:559: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:721: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h: In function `mmdrop':
/b2/sw/linux-2.4.9/include/linux/sched.h:725: warning: implicit 
declaration of function `__mmdrop' 
/b2/sw/linux-2.4.9/include/linux/sched.h: At top level:
/b2/sw/linux-2.4.9/include/linux/sched.h:757: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:758: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:759: parse error before `('
In file included from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/mm.h:383: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:384: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h: In function `alloc_pages':
/b2/sw/linux-2.4.9/include/linux/mm.h:394: warning: implicit 
declaration of function 
`_alloc_pages'/b2/sw/linux-2.4.9/include/linux/mm.h:394: warning: 
return makes pointer from integer without a cast
/b2/sw/linux-2.4.9/include/linux/mm.h: At top level:
/b2/sw/linux-2.4.9/include/linux/mm.h:399: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:400: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:416: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:417: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:438: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:439: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h: In function `pmd_alloc':
/b2/sw/linux-2.4.9/include/linux/mm.h:455: warning: implicit 
declaration of function `__pmd_alloc' 
/b2/sw/linux-2.4.9/include/linux/mm.h:455: warning: return makes 
pointer from integer without a cast
In file included from /b2/sw/linux-2.4.9/include/linux/highmem.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/pagemap.h:16,
                 from /b2/sw/linux-2.4.9/include/linux/locks.h:8,
                 from 
/b2/sw/linux-2.4.9/include/linux/devfs_fs_kernel.h:6,
                 from init/main.c:16:
/b2/sw/linux-2.4.9/include/asm/pgalloc.h: In function `get_pgd_slow':
/b2/sw/linux-2.4.9/include/asm/pgalloc.h:53: warning: implicit 
declaration of function `__get_free_pages'
/b2/sw/linux-2.4.9/include/asm/pgalloc.h: In function `free_pgd_slow':
/b2/sw/linux-2.4.9/include/asm/pgalloc.h:93: warning: implicit 
declaration of function `free_pages'In file included from 
/b2/sw/linux-2.4.9/include/linux/irq.h:57,
                 from /b2/sw/linux-2.4.9/include/asm/hardirq.h:6,
                 from /b2/sw/linux-2.4.9/include/linux/interrupt.h:45,
                 from 
/b2/sw/linux-2.4.9/include/linux/netdevice.h:424,
                 from /b2/sw/linux-2.4.9/include/net/ip.h:29,
                 from /b2/sw/linux-2.4.9/include/net/checksum.h:31,
                 from /b2/sw/linux-2.4.9/include/linux/raid/md.h:34,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/asm/hw_irq.h: At top level:
/b2/sw/linux-2.4.9/include/asm/hw_irq.h:78: parse error before `('
In file included from 
/b2/sw/linux-2.4.9/include/linux/netdevice.h:424,
                 from /b2/sw/linux-2.4.9/include/net/ip.h:29,
                 from /b2/sw/linux-2.4.9/include/net/checksum.h:31,
                 from /b2/sw/linux-2.4.9/include/linux/raid/md.h:34,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/linux/interrupt.h:77: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/interrupt.h:78: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/interrupt.h:154: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/interrupt.h: In function 
`tasklet_schedule':
/b2/sw/linux-2.4.9/include/linux/interrupt.h:159: warning: implicit 
declaration of function `__tasklet_schedule'
/b2/sw/linux-2.4.9/include/linux/interrupt.h: At top level:
/b2/sw/linux-2.4.9/include/linux/interrupt.h:162: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/interrupt.h: In function 
`tasklet_hi_schedule':
/b2/sw/linux-2.4.9/include/linux/interrupt.h:167: warning: implicit 
declaration of function `__tasklet_hi_schedule'
In file included from /b2/sw/linux-2.4.9/include/net/ip.h:29,
                 from /b2/sw/linux-2.4.9/include/net/checksum.h:31,
                 from /b2/sw/linux-2.4.9/include/linux/raid/md.h:34,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/linux/netdevice.h: In function 
`__netif_schedule':
/b2/sw/linux-2.4.9/include/linux/netdevice.h:489: warning: implicit 
declaration of function `cpu_raise_softirq'
In file included from /b2/sw/linux-2.4.9/include/net/ip.h:39,
                 from /b2/sw/linux-2.4.9/include/net/checksum.h:31,
                 from /b2/sw/linux-2.4.9/include/linux/raid/md.h:34,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/net/sock.h: In function `sock_rcvlowat':
/b2/sw/linux-2.4.9/include/net/sock.h:1248: warning: implicit 
declaration of function `min'
/b2/sw/linux-2.4.9/include/net/sock.h:1248: parse error before `int'
/b2/sw/linux-2.4.9/include/net/sock.h:1249: warning: control reaches 
end of non-void function
/b2/sw/linux-2.4.9/include/net/sock.h: In function `sock_intr_errno':
/b2/sw/linux-2.4.9/include/net/sock.h:1256: `LONG_MAX' undeclared 
(first use in this function)
/b2/sw/linux-2.4.9/include/net/sock.h:1256: (Each undeclared 
identifier is reported only once
/b2/sw/linux-2.4.9/include/net/sock.h:1256: for each function it 
appears in.)
/b2/sw/linux-2.4.9/include/net/sock.h:1257: warning: control reaches 
end of non-void function
In file included from /b2/sw/linux-2.4.9/include/linux/raid/md.h:39,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/linux/completion.h: At top level:
/b2/sw/linux-2.4.9/include/linux/completion.h:30: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/completion.h:31: parse error before 
`('
In file included from /b2/sw/linux-2.4.9/include/linux/raid/md.h:51,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/linux/raid/md_k.h: In function 
`pers_to_level':
/b2/sw/linux-2.4.9/include/linux/raid/md_k.h:38: warning: implicit 
declaration of function `panic'
In file included from init/main.c:33:
/b2/sw/linux-2.4.9/include/asm/bugs.h: In function `check_fpu':
/b2/sw/linux-2.4.9/include/asm/bugs.h:71: `KERN_EMERG' undeclared 
(first use in this function)
/b2/sw/linux-2.4.9/include/asm/bugs.h:71: parse error before string 
constant
/b2/sw/linux-2.4.9/include/asm/bugs.h:72: parse error before string 
constant
/b2/sw/linux-2.4.9/include/asm/bugs.h:87: `KERN_INFO' undeclared 
(first use in this function)
/b2/sw/linux-2.4.9/include/asm/bugs.h:87: parse error before string 
constant
/b2/sw/linux-2.4.9/include/asm/bugs.h:92: parse error before string 
constant
/b2/sw/linux-2.4.9/include/asm/bugs.h: In function `check_hlt':
/b2/sw/linux-2.4.9/include/asm/bugs.h:115: `KERN_INFO' undeclared 
(first use in this function)
/b2/sw/linux-2.4.9/include/asm/bugs.h:115: parse error before string 
constant
init/main.c: In function `profile_setup':
init/main.c:138: warning: implicit declaration of function 
`get_option'
init/main.c: In function `name_to_kdev_t':
init/main.c:285: warning: implicit declaration of function 
`simple_strtoul'
init/main.c: In function `debug_kernel':
init/main.c:393: `console_loglevel' undeclared (first use in this 
function)
init/main.c: In function `quiet_kernel':
init/main.c:401: `console_loglevel' undeclared (first use in this 
function)
make: *** [init/main.o] Error 1

__________________________________________________________ 
On Saturday 18 August 2001 12:57 pm, Fred Jackson wrote:
> Hi ya,
> 
> I have a Redhat 7.1 system practically out of the box, and though I 
> had no problem compiling 2.4.9 the first time around, I can't 
> recompile it at all without deleting the directory and untaring the 
> distribution again. 
> 
> any ideas?
> 
> thanks in advance!
> 
> Fred
> 
> I start with the usual 
> make mrproper
> make xconfig ( I load a kernel config file - originally created 
with 
> 2.4.8) 
> make bzImage
> make modules
> make modules_install
> make install
> 
> (i've already edited lilo.conf and the links in the /boot directory)
> 
> -
> 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/
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.4.xx won't recompile.
  2001-08-18 18:07 ` Magnus Naeslund(f)
@ 2001-08-18 18:18   ` Tony Hoyle
  2001-08-18 22:40     ` Fred Jackson
  0 siblings, 1 reply; 9+ messages in thread
From: Tony Hoyle @ 2001-08-18 18:18 UTC (permalink / raw)
  To: linux-kernel

Magnus Naeslund(f) wrote:

> Isn't it more safe to do it like this:
> 
> make mrproper
> cp ../linux-2.4.8/.config .
> make oldconfig
> make xconfig
> make bzImage && make modules && make modules_install && make install
> 
> ?
> I thought this was the proper way to do it, no?
> 
You don't need to make bzimage first, and you missed the dep/clean steps 
(theoretically not needed any more but I've had some really strange 
compiler errors by missing them out).

cp ../linux-2.4.8/.config .
make oldconfig
make xconfig
make dep clean install modules modules_install

Tony


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.4.xx won't recompile.
  2001-08-18 18:18   ` Tony Hoyle
@ 2001-08-18 22:40     ` Fred Jackson
  2001-08-18 22:57       ` Magnus Naeslund(f)
  0 siblings, 1 reply; 9+ messages in thread
From: Fred Jackson @ 2001-08-18 22:40 UTC (permalink / raw)
  To: Tony Hoyle, linux-kernel; +Cc: Magnus Naeslund(f)

[-- Attachment #1: Type: text/plain, Size: 13479 bytes --]

OK, tried it, twice, still doesn't wan't to compile the second time.
Followed your instructions, twice. Then I deleted the directory, 
untarred again, reconfigured the kernel from scratch, made it the 
first pass. then it would not recompile after I ran 'make xconfig', 
saved, and tried to recompile with 'make install'. then I ran 'make 
mrproper', 'make xconfig', 'make dep', make install ----- broke again 
with the following perplexing errors.

all I can tell for sure is that the compiler doewn't seem to have a 
definition for FASTCALL.

thank you for your input.

Fred

______________________________________________________________

[root@bits linux]# make install
scripts/split-include include/linux/autoconf.h include/config
gcc -D__KERNEL__ -I/b2/sw/linux-2.4.9/include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer 
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 
-march=k6   -c -o init/main.o init/main.c
In file included from /b2/sw/linux-2.4.9/include/linux/fs.h:19,
                 from 
/b2/sw/linux-2.4.9/include/linux/capability.h:17,
                 from /b2/sw/linux-2.4.9/include/linux/binfmts.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/sched.h:9,
                 from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/dcache.h: In function `dget':
/b2/sw/linux-2.4.9/include/linux/dcache.h:244: warning: implicit 
declaration of function `printk'
In file included from /b2/sw/linux-2.4.9/include/asm/semaphore.h:39,
                 from /b2/sw/linux-2.4.9/include/linux/fs.h:198,
                 from 
/b2/sw/linux-2.4.9/include/linux/capability.h:17,
                 from /b2/sw/linux-2.4.9/include/linux/binfmts.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/sched.h:9,
                 from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/asm/system.h: At top level:
/b2/sw/linux-2.4.9/include/asm/system.h:12: parse error before `('
In file included from /b2/sw/linux-2.4.9/include/linux/rwsem.h:27,
                 from /b2/sw/linux-2.4.9/include/asm/semaphore.h:42,
                 from /b2/sw/linux-2.4.9/include/linux/fs.h:198,
                 from 
/b2/sw/linux-2.4.9/include/linux/capability.h:17,
                 from /b2/sw/linux-2.4.9/include/linux/binfmts.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/sched.h:9,
                 from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/asm/rwsem.h:46: parse error before `('
/b2/sw/linux-2.4.9/include/asm/rwsem.h:47: parse error before `('
/b2/sw/linux-2.4.9/include/asm/rwsem.h:48: parse error before `('
In file included from 
/b2/sw/linux-2.4.9/include/linux/capability.h:17,
                 from /b2/sw/linux-2.4.9/include/linux/binfmts.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/sched.h:9,
                 from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/fs.h: In function `put_bh':
/b2/sw/linux-2.4.9/include/linux/fs.h:1082: warning: implicit 
declaration of function `barrier'
/b2/sw/linux-2.4.9/include/linux/fs.h: At top level:
/b2/sw/linux-2.4.9/include/linux/fs.h:1123: parse error before `('
/b2/sw/linux-2.4.9/include/linux/fs.h:1124: parse error before `('
/b2/sw/linux-2.4.9/include/linux/fs.h: In function 
`mark_buffer_dirty_inode':
/b2/sw/linux-2.4.9/include/linux/fs.h:1146: warning: implicit 
declaration of function `mark_buffer_dirty'
In file included from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/sched.h: At top level:
/b2/sw/linux-2.4.9/include/linux/sched.h:153: parse error before `('
In file included from /b2/sw/linux-2.4.9/include/linux/mm.h:4,
                 from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/sched.h:551: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:552: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:553: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:554: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:556: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:557: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:559: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:721: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h: In function `mmdrop':
/b2/sw/linux-2.4.9/include/linux/sched.h:725: warning: implicit 
declaration of function `__mmdrop' 
/b2/sw/linux-2.4.9/include/linux/sched.h: At top level:
/b2/sw/linux-2.4.9/include/linux/sched.h:757: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:758: parse error before `('
/b2/sw/linux-2.4.9/include/linux/sched.h:759: parse error before `('
In file included from /b2/sw/linux-2.4.9/include/linux/slab.h:14,
                 from /b2/sw/linux-2.4.9/include/linux/proc_fs.h:5,
                 from init/main.c:15:
/b2/sw/linux-2.4.9/include/linux/mm.h:383: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:384: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h: In function `alloc_pages':
/b2/sw/linux-2.4.9/include/linux/mm.h:394: warning: implicit 
declaration of function 
`_alloc_pages'/b2/sw/linux-2.4.9/include/linux/mm.h:394: warning: 
return makes pointer from integer without a cast
/b2/sw/linux-2.4.9/include/linux/mm.h: At top level:
/b2/sw/linux-2.4.9/include/linux/mm.h:399: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:400: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:416: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:417: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:438: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h:439: parse error before `('
/b2/sw/linux-2.4.9/include/linux/mm.h: In function `pmd_alloc':
/b2/sw/linux-2.4.9/include/linux/mm.h:455: warning: implicit 
declaration of function `__pmd_alloc' 
/b2/sw/linux-2.4.9/include/linux/mm.h:455: warning: return makes 
pointer from integer without a cast
In file included from /b2/sw/linux-2.4.9/include/linux/highmem.h:5,
                 from /b2/sw/linux-2.4.9/include/linux/pagemap.h:16,
                 from /b2/sw/linux-2.4.9/include/linux/locks.h:8,
                 from 
/b2/sw/linux-2.4.9/include/linux/devfs_fs_kernel.h:6,
                 from init/main.c:16:
/b2/sw/linux-2.4.9/include/asm/pgalloc.h: In function `get_pgd_slow':
/b2/sw/linux-2.4.9/include/asm/pgalloc.h:53: warning: implicit 
declaration of function `__get_free_pages'
/b2/sw/linux-2.4.9/include/asm/pgalloc.h: In function `free_pgd_slow':
/b2/sw/linux-2.4.9/include/asm/pgalloc.h:93: warning: implicit 
declaration of function `free_pages'In file included from 
/b2/sw/linux-2.4.9/include/linux/irq.h:57,
                 from /b2/sw/linux-2.4.9/include/asm/hardirq.h:6,
                 from /b2/sw/linux-2.4.9/include/linux/interrupt.h:45,
                 from 
/b2/sw/linux-2.4.9/include/linux/netdevice.h:424,
                 from /b2/sw/linux-2.4.9/include/net/ip.h:29,
                 from /b2/sw/linux-2.4.9/include/net/checksum.h:31,
                 from /b2/sw/linux-2.4.9/include/linux/raid/md.h:34,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/asm/hw_irq.h: At top level:
/b2/sw/linux-2.4.9/include/asm/hw_irq.h:78: parse error before `('
In file included from 
/b2/sw/linux-2.4.9/include/linux/netdevice.h:424,
                 from /b2/sw/linux-2.4.9/include/net/ip.h:29,
                 from /b2/sw/linux-2.4.9/include/net/checksum.h:31,
                 from /b2/sw/linux-2.4.9/include/linux/raid/md.h:34,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/linux/interrupt.h:77: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/interrupt.h:78: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/interrupt.h:154: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/interrupt.h: In function 
`tasklet_schedule':
/b2/sw/linux-2.4.9/include/linux/interrupt.h:159: warning: implicit 
declaration of function `__tasklet_schedule'
/b2/sw/linux-2.4.9/include/linux/interrupt.h: At top level:
/b2/sw/linux-2.4.9/include/linux/interrupt.h:162: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/interrupt.h: In function 
`tasklet_hi_schedule':
/b2/sw/linux-2.4.9/include/linux/interrupt.h:167: warning: implicit 
declaration of function `__tasklet_hi_schedule'
In file included from /b2/sw/linux-2.4.9/include/net/ip.h:29,
                 from /b2/sw/linux-2.4.9/include/net/checksum.h:31,
                 from /b2/sw/linux-2.4.9/include/linux/raid/md.h:34,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/linux/netdevice.h: In function 
`__netif_schedule':
/b2/sw/linux-2.4.9/include/linux/netdevice.h:489: warning: implicit 
declaration of function `cpu_raise_softirq'
In file included from /b2/sw/linux-2.4.9/include/net/ip.h:39,
                 from /b2/sw/linux-2.4.9/include/net/checksum.h:31,
                 from /b2/sw/linux-2.4.9/include/linux/raid/md.h:34,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/net/sock.h: In function `sock_rcvlowat':
/b2/sw/linux-2.4.9/include/net/sock.h:1248: warning: implicit 
declaration of function `min'
/b2/sw/linux-2.4.9/include/net/sock.h:1248: parse error before `int'
/b2/sw/linux-2.4.9/include/net/sock.h:1249: warning: control reaches 
end of non-void function
/b2/sw/linux-2.4.9/include/net/sock.h: In function `sock_intr_errno':
/b2/sw/linux-2.4.9/include/net/sock.h:1256: `LONG_MAX' undeclared 
(first use in this function)
/b2/sw/linux-2.4.9/include/net/sock.h:1256: (Each undeclared 
identifier is reported only once
/b2/sw/linux-2.4.9/include/net/sock.h:1256: for each function it 
appears in.)
/b2/sw/linux-2.4.9/include/net/sock.h:1257: warning: control reaches 
end of non-void function
In file included from /b2/sw/linux-2.4.9/include/linux/raid/md.h:39,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/linux/completion.h: At top level:
/b2/sw/linux-2.4.9/include/linux/completion.h:30: parse error before 
`('
/b2/sw/linux-2.4.9/include/linux/completion.h:31: parse error before 
`('
In file included from /b2/sw/linux-2.4.9/include/linux/raid/md.h:51,
                 from init/main.c:24:
/b2/sw/linux-2.4.9/include/linux/raid/md_k.h: In function 
`pers_to_level':
/b2/sw/linux-2.4.9/include/linux/raid/md_k.h:38: warning: implicit 
declaration of function `panic'
In file included from init/main.c:33:
/b2/sw/linux-2.4.9/include/asm/bugs.h: In function `check_fpu':
/b2/sw/linux-2.4.9/include/asm/bugs.h:71: `KERN_EMERG' undeclared 
(first use in this function)
/b2/sw/linux-2.4.9/include/asm/bugs.h:71: parse error before string 
constant
/b2/sw/linux-2.4.9/include/asm/bugs.h:72: parse error before string 
constant
/b2/sw/linux-2.4.9/include/asm/bugs.h:87: `KERN_INFO' undeclared 
(first use in this function)
/b2/sw/linux-2.4.9/include/asm/bugs.h:87: parse error before string 
constant
/b2/sw/linux-2.4.9/include/asm/bugs.h:92: parse error before string 
constant
/b2/sw/linux-2.4.9/include/asm/bugs.h: In function `check_hlt':
/b2/sw/linux-2.4.9/include/asm/bugs.h:115: `KERN_INFO' undeclared 
(first use in this function)
/b2/sw/linux-2.4.9/include/asm/bugs.h:115: parse error before string 
constant
init/main.c: In function `profile_setup':
init/main.c:138: warning: implicit declaration of function 
`get_option'
init/main.c: In function `name_to_kdev_t':
init/main.c:285: warning: implicit declaration of function 
`simple_strtoul'
init/main.c: In function `debug_kernel':
init/main.c:393: `console_loglevel' undeclared (first use in this 
function)
init/main.c: In function `quiet_kernel':
init/main.c:401: `console_loglevel' undeclared (first use in this 
function)
make: *** [init/main.o] Error 1
[root@bits linux]#



Fred


_________________________________ 
On Saturday 18 August 2001 01:18 pm, Tony Hoyle wrote:
> Magnus Naeslund(f) wrote:
> 
> > Isn't it more safe to do it like this:
> > 
> > make mrproper
> > cp ../linux-2.4.8/.config .
> > make oldconfig
> > make xconfig
> > make bzImage && make modules && make modules_install && make 
install
> > 
> > ?
> > I thought this was the proper way to do it, no?
> > 
> You don't need to make bzimage first, and you missed the dep/clean 
steps 
> (theoretically not needed any more but I've had some really strange 
> compiler errors by missing them out).
> 
> cp ../linux-2.4.8/.config .
> make oldconfig
> make xconfig
> make dep clean install modules modules_install
> 
> Tony
> 
> -

[-- Attachment #2: system.h --]
[-- Type: text/x-c, Size: 8993 bytes --]

#ifndef __ASM_SYSTEM_H
#define __ASM_SYSTEM_H

#include <linux/config.h>
#include <linux/kernel.h>
#include <asm/segment.h>
#include <linux/bitops.h> /* for LOCK_PREFIX */

#ifdef __KERNEL__

struct task_struct;	/* one of the stranger aspects of C forward declarations.. */
extern void FASTCALL(__switch_to(struct task_struct *prev, struct task_struct *next));

#define prepare_to_switch()	do { } while(0)
#define switch_to(prev,next,last) do {					\
	asm volatile("pushl %%esi\n\t"					\
		     "pushl %%edi\n\t"					\
		     "pushl %%ebp\n\t"					\
		     "movl %%esp,%0\n\t"	/* save ESP */		\
		     "movl %3,%%esp\n\t"	/* restore ESP */	\
		     "movl $1f,%1\n\t"		/* save EIP */		\
		     "pushl %4\n\t"		/* restore EIP */	\
		     "jmp __switch_to\n"				\
		     "1:\t"						\
		     "popl %%ebp\n\t"					\
		     "popl %%edi\n\t"					\
		     "popl %%esi\n\t"					\
		     :"=m" (prev->thread.esp),"=m" (prev->thread.eip),	\
		      "=b" (last)					\
		     :"m" (next->thread.esp),"m" (next->thread.eip),	\
		      "a" (prev), "d" (next),				\
		      "b" (prev));					\
} while (0)

#define _set_base(addr,base) do { unsigned long __pr; \
__asm__ __volatile__ ("movw %%dx,%1\n\t" \
	"rorl $16,%%edx\n\t" \
	"movb %%dl,%2\n\t" \
	"movb %%dh,%3" \
	:"=&d" (__pr) \
	:"m" (*((addr)+2)), \
	 "m" (*((addr)+4)), \
	 "m" (*((addr)+7)), \
         "0" (base) \
        ); } while(0)

#define _set_limit(addr,limit) do { unsigned long __lr; \
__asm__ __volatile__ ("movw %%dx,%1\n\t" \
	"rorl $16,%%edx\n\t" \
	"movb %2,%%dh\n\t" \
	"andb $0xf0,%%dh\n\t" \
	"orb %%dh,%%dl\n\t" \
	"movb %%dl,%2" \
	:"=&d" (__lr) \
	:"m" (*(addr)), \
	 "m" (*((addr)+6)), \
	 "0" (limit) \
        ); } while(0)

#define set_base(ldt,base) _set_base( ((char *)&(ldt)) , (base) )
#define set_limit(ldt,limit) _set_limit( ((char *)&(ldt)) , ((limit)-1)>>12 )

static inline unsigned long _get_base(char * addr)
{
	unsigned long __base;
	__asm__("movb %3,%%dh\n\t"
		"movb %2,%%dl\n\t"
		"shll $16,%%edx\n\t"
		"movw %1,%%dx"
		:"=&d" (__base)
		:"m" (*((addr)+2)),
		 "m" (*((addr)+4)),
		 "m" (*((addr)+7)));
	return __base;
}

#define get_base(ldt) _get_base( ((char *)&(ldt)) )

/*
 * Load a segment. Fall back on loading the zero
 * segment if something goes wrong..
 */
#define loadsegment(seg,value)			\
	asm volatile("\n"			\
		"1:\t"				\
		"movl %0,%%" #seg "\n"		\
		"2:\n"				\
		".section .fixup,\"ax\"\n"	\
		"3:\t"				\
		"pushl $0\n\t"			\
		"popl %%" #seg "\n\t"		\
		"jmp 2b\n"			\
		".previous\n"			\
		".section __ex_table,\"a\"\n\t"	\
		".align 4\n\t"			\
		".long 1b,3b\n"			\
		".previous"			\
		: :"m" (*(unsigned int *)&(value)))

/*
 * Clear and set 'TS' bit respectively
 */
#define clts() __asm__ __volatile__ ("clts")
#define read_cr0() ({ \
	unsigned int __dummy; \
	__asm__( \
		"movl %%cr0,%0\n\t" \
		:"=r" (__dummy)); \
	__dummy; \
})
#define write_cr0(x) \
	__asm__("movl %0,%%cr0": :"r" (x));
#define stts() write_cr0(8 | read_cr0())

#endif	/* __KERNEL__ */

static inline unsigned long get_limit(unsigned long segment)
{
	unsigned long __limit;
	__asm__("lsll %1,%0"
		:"=r" (__limit):"r" (segment));
	return __limit+1;
}

#define nop() __asm__ __volatile__ ("nop")

#define xchg(ptr,v) ((__typeof__(*(ptr)))__xchg((unsigned long)(v),(ptr),sizeof(*(ptr))))

#define tas(ptr) (xchg((ptr),1))

struct __xchg_dummy { unsigned long a[100]; };
#define __xg(x) ((struct __xchg_dummy *)(x))


/*
 * The semantics of XCHGCMP8B are a bit strange, this is why
 * there is a loop and the loading of %%eax and %%edx has to
 * be inside. This inlines well in most cases, the cached
 * cost is around ~38 cycles. (in the future we might want
 * to do an SIMD/3DNOW!/MMX/FPU 64-bit store here, but that
 * might have an implicit FPU-save as a cost, so it's not
 * clear which path to go.)
 */
static inline void __set_64bit (unsigned long long * ptr,
		unsigned int low, unsigned int high)
{
	__asm__ __volatile__ (
		"\n1:\t"
		"movl (%0), %%eax\n\t"
		"movl 4(%0), %%edx\n\t"
		"cmpxchg8b (%0)\n\t"
		"jnz 1b"
		: /* no outputs */
		:	"D"(ptr),
			"b"(low),
			"c"(high)
		:	"ax","dx","memory");
}

static inline void __set_64bit_constant (unsigned long long *ptr,
						 unsigned long long value)
{
	__set_64bit(ptr,(unsigned int)(value), (unsigned int)((value)>>32ULL));
}
#define ll_low(x)	*(((unsigned int*)&(x))+0)
#define ll_high(x)	*(((unsigned int*)&(x))+1)

static inline void __set_64bit_var (unsigned long long *ptr,
			 unsigned long long value)
{
	__set_64bit(ptr,ll_low(value), ll_high(value));
}

#define set_64bit(ptr,value) \
(__builtin_constant_p(value) ? \
 __set_64bit_constant(ptr, value) : \
 __set_64bit_var(ptr, value) )

#define _set_64bit(ptr,value) \
(__builtin_constant_p(value) ? \
 __set_64bit(ptr, (unsigned int)(value), (unsigned int)((value)>>32ULL) ) : \
 __set_64bit(ptr, ll_low(value), ll_high(value)) )

/*
 * Note: no "lock" prefix even on SMP: xchg always implies lock anyway
 * Note 2: xchg has side effect, so that attribute volatile is necessary,
 *	  but generally the primitive is invalid, *ptr is output argument. --ANK
 */
static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
{
	switch (size) {
		case 1:
			__asm__ __volatile__("xchgb %b0,%1"
				:"=q" (x)
				:"m" (*__xg(ptr)), "0" (x)
				:"memory");
			break;
		case 2:
			__asm__ __volatile__("xchgw %w0,%1"
				:"=r" (x)
				:"m" (*__xg(ptr)), "0" (x)
				:"memory");
			break;
		case 4:
			__asm__ __volatile__("xchgl %0,%1"
				:"=r" (x)
				:"m" (*__xg(ptr)), "0" (x)
				:"memory");
			break;
	}
	return x;
}

/*
 * Atomic compare and exchange.  Compare OLD with MEM, if identical,
 * store NEW in MEM.  Return the initial value in MEM.  Success is
 * indicated by comparing RETURN with OLD.
 */

#ifdef CONFIG_X86_CMPXCHG
#define __HAVE_ARCH_CMPXCHG 1

static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
				      unsigned long new, int size)
{
	unsigned long prev;
	switch (size) {
	case 1:
		__asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2"
				     : "=a"(prev)
				     : "q"(new), "m"(*__xg(ptr)), "0"(old)
				     : "memory");
		return prev;
	case 2:
		__asm__ __volatile__(LOCK_PREFIX "cmpxchgw %w1,%2"
				     : "=a"(prev)
				     : "q"(new), "m"(*__xg(ptr)), "0"(old)
				     : "memory");
		return prev;
	case 4:
		__asm__ __volatile__(LOCK_PREFIX "cmpxchgl %1,%2"
				     : "=a"(prev)
				     : "q"(new), "m"(*__xg(ptr)), "0"(old)
				     : "memory");
		return prev;
	}
	return old;
}

#define cmpxchg(ptr,o,n)\
	((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\
					(unsigned long)(n),sizeof(*(ptr))))
    
#else
/* Compiling for a 386 proper.	Is it worth implementing via cli/sti?  */
#endif

/*
 * Force strict CPU ordering.
 * And yes, this is required on UP too when we're talking
 * to devices.
 *
 * For now, "wmb()" doesn't actually do anything, as all
 * Intel CPU's follow what Intel calls a *Processor Order*,
 * in which all writes are seen in the program order even
 * outside the CPU.
 *
 * I expect future Intel CPU's to have a weaker ordering,
 * but I'd also expect them to finally get their act together
 * and add some real memory barriers if so.
 */
#define mb() 	__asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory")
#define rmb()	mb()
#define wmb()	__asm__ __volatile__ ("": : :"memory")

#ifdef CONFIG_SMP
#define smp_mb()	mb()
#define smp_rmb()	rmb()
#define smp_wmb()	wmb()
#else
#define smp_mb()	barrier()
#define smp_rmb()	barrier()
#define smp_wmb()	barrier()
#endif

#define set_mb(var, value) do { xchg(&var, value); } while (0)
#define set_wmb(var, value) do { var = value; wmb(); } while (0)

/* interrupt control.. */
#define __save_flags(x)		__asm__ __volatile__("pushfl ; popl %0":"=g" (x): /* no input */)
#define __restore_flags(x) 	__asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory", "cc")
#define __cli() 		__asm__ __volatile__("cli": : :"memory")
#define __sti()			__asm__ __volatile__("sti": : :"memory")
/* used in the idle loop; sti takes one instruction cycle to complete */
#define safe_halt()		__asm__ __volatile__("sti; hlt": : :"memory")

/* For spinlocks etc */
#define local_irq_save(x)	__asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (x): /* no input */ :"memory")
#define local_irq_restore(x)	__restore_flags(x)
#define local_irq_disable()	__cli()
#define local_irq_enable()	__sti()

#ifdef CONFIG_SMP

extern void __global_cli(void);
extern void __global_sti(void);
extern unsigned long __global_save_flags(void);
extern void __global_restore_flags(unsigned long);
#define cli() __global_cli()
#define sti() __global_sti()
#define save_flags(x) ((x)=__global_save_flags())
#define restore_flags(x) __global_restore_flags(x)

#else

#define cli() __cli()
#define sti() __sti()
#define save_flags(x) __save_flags(x)
#define restore_flags(x) __restore_flags(x)

#endif

/*
 * disable hlt during certain critical i/o operations
 */
#define HAVE_DISABLE_HLT
void disable_hlt(void);
void enable_hlt(void);

#endif

[-- Attachment #3: rwsem.h --]
[-- Type: text/x-c, Size: 6150 bytes --]

/* rwsem.h: R/W semaphores implemented using XADD/CMPXCHG for i486+
 *
 * Written by David Howells (dhowells@redhat.com).
 *
 * Derived from asm-i386/semaphore.h
 *
 *
 * The MSW of the count is the negated number of active writers and waiting
 * lockers, and the LSW is the total number of active locks
 *
 * The lock count is initialized to 0 (no active and no waiting lockers).
 *
 * When a writer subtracts WRITE_BIAS, it'll get 0xffff0001 for the case of an
 * uncontended lock. This can be determined because XADD returns the old value.
 * Readers increment by 1 and see a positive value when uncontended, negative
 * if there are writers (and maybe) readers waiting (in which case it goes to
 * sleep).
 *
 * The value of WAITING_BIAS supports up to 32766 waiting processes. This can
 * be extended to 65534 by manually checking the whole MSW rather than relying
 * on the S flag.
 *
 * The value of ACTIVE_BIAS supports up to 65535 active processes.
 *
 * This should be totally fair - if anything is waiting, a process that wants a
 * lock will go to the back of the queue. When the currently active lock is
 * released, if there's a writer at the front of the queue, then that and only
 * that will be woken up; if there's a bunch of consequtive readers at the
 * front, then they'll all be woken up, but no other readers will be.
 */

#ifndef _I386_RWSEM_H
#define _I386_RWSEM_H

#ifndef _LINUX_RWSEM_H
#error please dont include asm/rwsem.h directly, use linux/rwsem.h instead
#endif

#ifdef __KERNEL__

#include <linux/list.h>
#include <linux/spinlock.h>

struct rwsem_waiter;

extern struct rw_semaphore *FASTCALL(rwsem_down_read_failed(struct rw_semaphore *sem));
extern struct rw_semaphore *FASTCALL(rwsem_down_write_failed(struct rw_semaphore *sem));
extern struct rw_semaphore *FASTCALL(rwsem_wake(struct rw_semaphore *));

/*
 * the semaphore definition
 */
struct rw_semaphore {
	signed long		count;
#define RWSEM_UNLOCKED_VALUE		0x00000000
#define RWSEM_ACTIVE_BIAS		0x00000001
#define RWSEM_ACTIVE_MASK		0x0000ffff
#define RWSEM_WAITING_BIAS		(-0x00010000)
#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
	spinlock_t		wait_lock;
	struct list_head	wait_list;
#if RWSEM_DEBUG
	int			debug;
#endif
};

/*
 * initialisation
 */
#if RWSEM_DEBUG
#define __RWSEM_DEBUG_INIT      , 0
#else
#define __RWSEM_DEBUG_INIT	/* */
#endif

#define __RWSEM_INITIALIZER(name) \
{ RWSEM_UNLOCKED_VALUE, SPIN_LOCK_UNLOCKED, LIST_HEAD_INIT((name).wait_list) \
	__RWSEM_DEBUG_INIT }

#define DECLARE_RWSEM(name) \
	struct rw_semaphore name = __RWSEM_INITIALIZER(name)

static inline void init_rwsem(struct rw_semaphore *sem)
{
	sem->count = RWSEM_UNLOCKED_VALUE;
	spin_lock_init(&sem->wait_lock);
	INIT_LIST_HEAD(&sem->wait_list);
#if RWSEM_DEBUG
	sem->debug = 0;
#endif
}

/*
 * lock for reading
 */
static inline void __down_read(struct rw_semaphore *sem)
{
	__asm__ __volatile__(
		"# beginning down_read\n\t"
LOCK_PREFIX	"  incl      (%%eax)\n\t" /* adds 0x00000001, returns the old value */
		"  js        2f\n\t" /* jump if we weren't granted the lock */
		"1:\n\t"
		".section .text.lock,\"ax\"\n"
		"2:\n\t"
		"  pushl     %%ecx\n\t"
		"  pushl     %%edx\n\t"
		"  call      rwsem_down_read_failed\n\t"
		"  popl      %%edx\n\t"
		"  popl      %%ecx\n\t"
		"  jmp       1b\n"
		".previous"
		"# ending down_read\n\t"
		: "+m"(sem->count)
		: "a"(sem)
		: "memory", "cc");
}

/*
 * lock for writing
 */
static inline void __down_write(struct rw_semaphore *sem)
{
	int tmp;

	tmp = RWSEM_ACTIVE_WRITE_BIAS;
	__asm__ __volatile__(
		"# beginning down_write\n\t"
LOCK_PREFIX	"  xadd      %0,(%%eax)\n\t" /* subtract 0x0000ffff, returns the old value */
		"  testl     %0,%0\n\t" /* was the count 0 before? */
		"  jnz       2f\n\t" /* jump if we weren't granted the lock */
		"1:\n\t"
		".section .text.lock,\"ax\"\n"
		"2:\n\t"
		"  pushl     %%ecx\n\t"
		"  call      rwsem_down_write_failed\n\t"
		"  popl      %%ecx\n\t"
		"  jmp       1b\n"
		".previous\n"
		"# ending down_write"
		: "+d"(tmp), "+m"(sem->count)
		: "a"(sem)
		: "memory", "cc");
}

/*
 * unlock after reading
 */
static inline void __up_read(struct rw_semaphore *sem)
{
	__s32 tmp = -RWSEM_ACTIVE_READ_BIAS;
	__asm__ __volatile__(
		"# beginning __up_read\n\t"
LOCK_PREFIX	"  xadd      %%edx,(%%eax)\n\t" /* subtracts 1, returns the old value */
		"  js        2f\n\t" /* jump if the lock is being waited upon */
		"1:\n\t"
		".section .text.lock,\"ax\"\n"
		"2:\n\t"
		"  decw      %%dx\n\t" /* do nothing if still outstanding active readers */
		"  jnz       1b\n\t"
		"  pushl     %%ecx\n\t"
		"  call      rwsem_wake\n\t"
		"  popl      %%ecx\n\t"
		"  jmp       1b\n"
		".previous\n"
		"# ending __up_read\n"
		: "+m"(sem->count), "+d"(tmp)
		: "a"(sem)
		: "memory", "cc");
}

/*
 * unlock after writing
 */
static inline void __up_write(struct rw_semaphore *sem)
{
	__asm__ __volatile__(
		"# beginning __up_write\n\t"
		"  movl      %2,%%edx\n\t"
LOCK_PREFIX	"  xaddl     %%edx,(%%eax)\n\t" /* tries to transition 0xffff0001 -> 0x00000000 */
		"  jnz       2f\n\t" /* jump if the lock is being waited upon */
		"1:\n\t"
		".section .text.lock,\"ax\"\n"
		"2:\n\t"
		"  decw      %%dx\n\t" /* did the active count reduce to 0? */
		"  jnz       1b\n\t" /* jump back if not */
		"  pushl     %%ecx\n\t"
		"  call      rwsem_wake\n\t"
		"  popl      %%ecx\n\t"
		"  jmp       1b\n"
		".previous\n"
		"# ending __up_write\n"
		: "+m"(sem->count)
		: "a"(sem), "i"(-RWSEM_ACTIVE_WRITE_BIAS)
		: "memory", "cc", "edx");
}

/*
 * implement atomic add functionality
 */
static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
{
	__asm__ __volatile__(
LOCK_PREFIX	"addl %1,%0"
		:"=m"(sem->count)
		:"ir"(delta), "m"(sem->count));
}

/*
 * implement exchange and add functionality
 */
static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
{
	int tmp = delta;

	__asm__ __volatile__(
LOCK_PREFIX	"xadd %0,(%2)"
		: "+r"(tmp), "=m"(sem->count)
		: "r"(sem), "m"(sem->count)
		: "memory");

	return tmp+delta;
}

#endif /* __KERNEL__ */
#endif /* _I386_RWSEM_H */

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.4.xx won't recompile.
  2001-08-18 22:40     ` Fred Jackson
@ 2001-08-18 22:57       ` Magnus Naeslund(f)
  2001-08-18 23:08         ` André Dahlqvist
  2001-08-19  0:49         ` Fred Jackson
  0 siblings, 2 replies; 9+ messages in thread
From: Magnus Naeslund(f) @ 2001-08-18 22:57 UTC (permalink / raw)
  To: Fred Jackson, Tony Hoyle, linux-kernel

From: "Fred Jackson" <fred@arkansaswebs.com>
> OK, tried it, twice, still doesn't wan't to compile the second time.
> Followed your instructions, twice. Then I deleted the directory, 
> untarred again, reconfigured the kernel from scratch, made it the 
> first pass. then it would not recompile after I ran 'make xconfig', 
> saved, and tried to recompile with 'make install'. then I ran 'make 
> mrproper', 'make xconfig', 'make dep', make install ----- broke again 
> with the following perplexing errors.
> 
> all I can tell for sure is that the compiler doewn't seem to have a 
> definition for FASTCALL.
> 
> thank you for your input.
> 
> Fred
> 

What version gcc is that?
I think gcc 2.95.[23] or the superpatched 2.96.x is nice.
Maybe youre using egcs ?
I think that compiler is "old" from a 2.4.x (x>=6) point of view?

Magnus

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 Programmer/Networker [|] Magnus Naeslund
 PGP Key: http://www.genline.nu/mag_pgp.txt
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.4.xx won't recompile.
  2001-08-18 22:57       ` Magnus Naeslund(f)
@ 2001-08-18 23:08         ` André Dahlqvist
  2001-08-19  0:49         ` Fred Jackson
  1 sibling, 0 replies; 9+ messages in thread
From: André Dahlqvist @ 2001-08-18 23:08 UTC (permalink / raw)
  To: linux-kernel

Magnus Naeslund(f) <mag@fbab.net> wrote:

> Maybe youre using egcs ?
> I think that compiler is "old" from a 2.4.x (x>=6) point of view?

andre@sledgehammer:~$ grep 'egcs' devel/kernel/linux/Documentation/Changes
The recommended compiler for the kernel is egcs 1.1.2 (gcc 2.91.66), and it
<snip>
-- 

André Dahlqvist <andre.dahlqvist@telia.com>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.4.xx won't recompile.
  2001-08-18 22:57       ` Magnus Naeslund(f)
  2001-08-18 23:08         ` André Dahlqvist
@ 2001-08-19  0:49         ` Fred Jackson
  2001-08-19 12:19           ` Pascal Schmidt
  1 sibling, 1 reply; 9+ messages in thread
From: Fred Jackson @ 2001-08-19  0:49 UTC (permalink / raw)
  To: mag, Tony Hoyle, linux-kernel; +Cc: André Dahlqvist


I'm using:

gcc-2.96-81  (redhat 7.1)

no egcs installed ??

I kinda figured that redhat would install the tools for a kernel 
compile. and what is  compat-egcs-6.2-1.1.2.14 that is shipped with 
redhat?

thanks 

Fred



_________________________________ 
On Saturday 18 August 2001 05:57 pm, Magnus Naeslund\(f\) wrote:
> From: "Fred Jackson" <fred@arkansaswebs.com>
> > OK, tried it, twice, still doesn't wan't to compile the second 
time.
> > Followed your instructions, twice. Then I deleted the directory, 
> > untarred again, reconfigured the kernel from scratch, made it the 
> > first pass. then it would not recompile after I ran 'make 
xconfig', 
> > saved, and tried to recompile with 'make install'. then I ran 
'make 
> > mrproper', 'make xconfig', 'make dep', make install ----- broke 
again 
> > with the following perplexing errors.
> > 
> > all I can tell for sure is that the compiler doewn't seem to have 
a 
> > definition for FASTCALL.
> > 
> > thank you for your input.
> > 
> > Fred
> > 
> 
> What version gcc is that?
> I think gcc 2.95.[23] or the superpatched 2.96.x is nice.
> Maybe youre using egcs ?
> I think that compiler is "old" from a 2.4.x (x>=6) point of view?
> 
> Magnus
> 
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>  Programmer/Networker [|] Magnus Naeslund
>  PGP Key: http://www.genline.nu/mag_pgp.txt
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> 
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: 2.4.xx won't recompile.
  2001-08-19  0:49         ` Fred Jackson
@ 2001-08-19 12:19           ` Pascal Schmidt
  0 siblings, 0 replies; 9+ messages in thread
From: Pascal Schmidt @ 2001-08-19 12:19 UTC (permalink / raw)
  To: linux-kernel

On Sat, 18 Aug 2001, Fred Jackson wrote:

> I kinda figured that redhat would install the tools for a kernel
> compile. and what is  compat-egcs-6.2-1.1.2.14 that is shipped with
> redhat?
That's the right one, it even installs under the name kgcc. You can then
set CC=kgcc in the kernel makefile.

-- 
Ciao, Pascal

-<[ pharao90@tzi.de, netmail 2:241/215.72, home http://cobol.cjb.net/) ]>-


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2001-08-19 12:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-08-18 17:57 2.4.xx won't recompile Fred Jackson
2001-08-18 18:07 ` Magnus Naeslund(f)
2001-08-18 18:18   ` Tony Hoyle
2001-08-18 22:40     ` Fred Jackson
2001-08-18 22:57       ` Magnus Naeslund(f)
2001-08-18 23:08         ` André Dahlqvist
2001-08-19  0:49         ` Fred Jackson
2001-08-19 12:19           ` Pascal Schmidt
2001-08-18 18:07 ` Fred Jackson

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).