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
[EMAIL PROTECTED] or [EMAIL PROTECTED]
_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to