Re: [9fans] Linker weirdness? (was: Assembler weirdness?)

2008-05-18 Thread erik quanstrom
 8l -T0x10 -o 8.out boot.8 cpuid.8 floppy.8 gdt.8 halt.8 harddisk.8 
 interrupt.8 jmtrue.8 keyboard.8 memory.8 multitask.8 onlyin.8 pci.8 syscall.8 
 time.8 timer.8 tone.8 video.8 x86.8 ../port/libpgosport.a
 initnonport: incompatible type signatures 4c81a129(gdt.8) and 97da8762(x86.8) 
 for initgdt
 main: incompatible type signatures 4c81a129(timer.8) and 
 951b2e20(../port/libpgosport.a(main)) for inittimer
 simplelang: np: not defined
 simplelang: apm: not defined
 simplelang: gdt: not defined

apoligies in advance for addressing the actual question.

the default CFLAGS were changed recently on sources.  the -T flag was added to 
the
defaults.  this adds type signatures to .$O files.  without -T type signatures 
are left
blank.  the linker expects either all the signatures for a particular symbol to 
match
or to be blank.  

incompatable signatures happen when the same external symbol is declared with
different types in different source files.  the linker is picky.  uint and 
int are not
compatable.

- erik




Re: [9fans] Linker weirdness? (was: Assembler weirdness?)

2008-05-17 Thread Bruce Ellis
please keep this off the list. you fixing something for a change.is as
interesting as my puppy shiiting outside.

good doggy,

brucee

On 5/18/08, Pietro Gagliardi [EMAIL PROTECTED] wrote:
 I fixed it by specifying in the mkfile to convert jamesmol.s to jmfixed.s or
 something.

 But now when I go to link I get these weird errors about undefined symbols
 in a function that they are not even related to.

 source: /n/sources/contrib/pietro/pgos.tar
 error list: /n/sources/contrib/pietro/pgos.err

 And yes, I plan to use the a.out(6). But now it just takes raw binary.

 On May 17, 2008, at 10:21 PM, Pietro Gagliardi wrote:

  You mean ##? Okay, but since 8a doesn't have an option to issue the
 standard C preprocessor (cpp(1) - 8c has -p), I'll see what I can do.
 
  On May 17, 2008, at 9:44 PM, erik quanstrom wrote:
 
 
  
Hello. I'm trying to switch from GCC/NASM to the good old Plan 9 tools
to get a simple kernel I'm writing compiled and working with 9load
(which fortunately is Multiboot-compliant). But there is one file - an
8a-ized hand-me-down interrupt service routine array - that is causing
problems. Running
   
   8a /n/sources/contrib/pietro/jamesmol.s
   
yields the errors in
 /n/sources/contrib/pietro/jamesmol.out. But if I
first preprocess with cpp(1), which produces
 /n/sources/contrib/pietro/
jamesmol.fixed, everything works fine with 8a. What's wrong?
   
- Pietro
   
PS - This is when I hate macros.
   
  
   i believe 8c disapproves of string pasting.
  
   - erik