[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-hurd] oskit-mach cannot be build against oskit 20000901
From: |
Neal H Walfield |
Subject: |
[Bug-hurd] oskit-mach cannot be build against oskit 20000901 |
Date: |
Sun, 17 Sep 2000 23:46:04 -0500 |
User-agent: |
Mutt/1.2i |
Hi Roland,
Since you are in gnu-mach oskit mode, here is another problem.
I am trying to build oskit-mach against the latest oskit: 20000901.
Up until now, I have been using the 20000202 snapshot. Everything builds
fine until it gets to creating kernel.o. Here it complains about multiple
declarations of osenv_intr_{disable,enable,enabled}:
gcc -O -g -DDEBUG -nostdlib -nostartfiles -r -o kernel.o\
-L/usr/local/oskit-20000901/lib -Wl,-\(
/usr/local/oskit-20000901/lib/oskit/multiboot.o ... [snip] ... -loskit_kern
-loskit_lmm -loskit_com -loskit_unsupp -loskit_dev -loskit_linux_dev
-loskit_diskpart -Wl,-\) -lgcc
/usr/local/oskit-20000901/lib/liboskit_dev.a(synch.o): In function
`osenv_intr_enable':
/home/neal/project/oskit-20000901/dev/../oskit/x86/proc_reg.h:159: multiple
definition of `osenv_intr_enable'
osenv_synch.o:/home/neal/project/gnumach/build/../gnumach/oskit/osenv_synch.c:35:
first defined here
/usr/bin/ld: Warning: size of symbol `osenv_intr_enable' changed from 32 to 6
in synch.o
/usr/local/oskit-20000901/lib/liboskit_dev.a(synch.o): In function
`osenv_intr_disable':
/home/neal/project/oskit-20000901/dev/../oskit/x86/proc_reg.h:158: multiple
definition of `osenv_intr_disable'
osenv_synch.o:/home/neal/project/gnumach/build/../gnumach/oskit/osenv_synch.c:18:
first defined here
/usr/bin/ld: Warning: size of symbol `osenv_intr_disable' changed from 49 to 6
in synch.o
/usr/local/oskit-20000901/lib/liboskit_dev.a(synch.o): In function
`osenv_intr_enabled':
/home/neal/project/oskit-20000901/dev/../dev/x86/synch.c:43: multiple
definition of `osenv_intr_enabled'
osenv_synch.o:/home/neal/project/gnumach/build/../gnumach/oskit/osenv_synch.c:46:
first defined here
/usr/bin/ld: Warning: size of symbol `osenv_intr_enabled' changed from 20 to 12
in synch.o
collect2: ld returned 1 exit status
make: *** [kernel.o] Error 1
It appears that this somehow involves the gnumach/oskit/osenv_synch.c file.
Removing this file allows the whole thing to compile without anymore errors
or warnings. As great as that sounds, it crashes on boot.
Examining the differences between the two kits yielded the following results:
neal@school:/usr/local/oskit-20000901/lib (1)$ for i in liboskit_kern.a \
liboskit_lmm.a liboskit_com.a liboskit_unsupp.a liboskit_dev.a \
liboskit_linux_dev.a liboskit_diskpart.a; do nm $i | grep osenv_intr_disable \
&& echo $i; done
U osenv_intr_disable
liboskit_unsupp.a
U osenv_intr_disable
U osenv_intr_disable
U osenv_intr_disable
U osenv_intr_disable
U osenv_intr_disable
00000008 T osenv_intr_disable
liboskit_dev.a
U osenv_intr_disable
U osenv_intr_disable
liboskit_linux_dev.a
neal@school:/usr/local/oskit-20000202/lib (1)$ for i in liboskit_kern.a \
liboskit_lmm.a liboskit_com.a liboskit_unsupp.a liboskit_dev.a \
liboskit_linux_dev.a liboskit_diskpart.a; do nm $i | grep osenv_intr_disable \
&& echo $i; done
U osenv_intr_disable
liboskit_unsupp.a
U osenv_intr_disable
U osenv_intr_disable
U osenv_intr_disable
U osenv_intr_disable
00000008 T osenv_intr_disable
U osenv_intr_disable
U osenv_intr_disable
liboskit_dev.a
We are still only pulling in the osenv_intr_* once. I just cannot figure this
out. It screams linker madness, however, I have no clue at this point.
Thanks,
-Neal
--
Neal H Walfield
University of Massachusetts at Lowell
neal@walfield.org or nwalfiel@cs.uml.edu
- [Bug-hurd] oskit-mach cannot be build against oskit 20000901,
Neal H Walfield <=