diff -r -u _/src/commands/ash/Makefile src/commands/ash/Makefile --- _/src/commands/ash/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/commands/ash/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -12,6 +12,10 @@ GENSRCS= builtins.c init.c nodes.c syntax.c operators.c signames.c GENHDRS= builtins.h nodes.h syntax.h token.h operators.h signames.h SRCS= ${SHSRCS} ${GENSRCS} +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c __longjmp14.S __setjmp14.S +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) DPSRCS+=${GENHDRS} BINDIR= /bin MAN= @@ -56,10 +60,18 @@ redir.c trap.c var.c ./mkinit ${.ALLSRC:S/^mkinit$//} -mkinit: mkinit.o -mknodes: mknodes.o -mksyntax: mksyntax.o -mksignames: mksignames.o +#mkinit: mkinit.o +mkinit: mkinit.c + cc -D__unused= -o$@ $> +#mknodes: mknodes.o +mknodes: mknodes.c + cc -o$@ $> +#mksyntax: mksyntax.o +mksyntax: mksyntax.c + cc -D__unused= -o$@ $> +#mksignames: mksignames.o +mksignames: mksignames.c + cc -o$@ $> .ORDER: nodes.c nodes.h nodes.c nodes.h: mknodes nodetypes nodes.c.pat diff -r -u _/src/common/include/arch/i386/interrupt.h src/common/include/arch/i386/interrupt.h --- _/src/common/include/arch/i386/interrupt.h 2012-02-28 18:53:46.000000000 +0900 +++ src/common/include/arch/i386/interrupt.h 2012-05-11 00:00:00.000000000 +0900 @@ -40,8 +40,16 @@ #else #define NR_IRQ_VECTORS 64 #endif +#if 0 #define CLOCK_IRQ 0 +#else /* patch */ +#define CLOCK_IRQ 4 +#endif +#if 0 #define KEYBOARD_IRQ 1 +#else /* patch */ +#define KEYBOARD_IRQ 2 +#endif #define CASCADE_IRQ 2 /* cascade enable for 2nd AT controller */ #define ETHER_IRQ 3 /* default ethernet interrupt vector */ #define SECONDARY_IRQ 3 /* RS232 interrupt vector for port 2 */ diff -r -u _/src/common/include/arch/i386/stackframe.h src/common/include/arch/i386/stackframe.h --- _/src/common/include/arch/i386/stackframe.h 2012-02-28 18:53:46.000000000 +0900 +++ src/common/include/arch/i386/stackframe.h 2012-05-11 00:00:00.000000000 +0900 @@ -13,6 +13,7 @@ * used for the larger registers to avoid differences in the code. */ struct stackframe_s { +#if 0 u16_t gs; /* last item pushed by save */ u16_t fs; /* ^ */ u16_t es; /* | */ @@ -31,6 +32,63 @@ reg_t psw; /* | */ reg_t sp; /* | */ reg_t ss; /* these are pushed by CPU during interrupt */ +#else /* patch */ +#if defined(__arm__) + reg_t retreg; + reg_t r1; + reg_t r2; + reg_t r3; + reg_t r4; + reg_t r5; + reg_t r6; + reg_t r7; + reg_t r8; + reg_t r9; + reg_t r10; + reg_t fp; + reg_t r12; + reg_t sp; + reg_t lr; + reg_t pc; + reg_t psw; +#elif defined(__mips__) + reg_t pc; + reg_t gpr1; + reg_t retreg; + reg_t gpr3; + reg_t gpr4; + reg_t gpr5; + reg_t gpr6; + reg_t gpr7; + reg_t gpr8; + reg_t gpr9; + reg_t gpr10; + reg_t gpr11; + reg_t gpr12; + reg_t gpr13; + reg_t gpr14; + reg_t gpr15; + reg_t gpr16; + reg_t gpr17; + reg_t gpr18; + reg_t gpr19; + reg_t gpr20; + reg_t gpr21; + reg_t gpr22; + reg_t gpr23; + reg_t gpr24; + reg_t gpr25; + reg_t hi; + reg_t lo; + reg_t gpr28; + reg_t sp; + reg_t fp; + reg_t lr; + reg_t psw; +#else +#error stackframe_s +#endif +#endif }; #endif /* #ifndef STACK_FRAME_H */ diff -r -u _/src/common/lib/libc/Makefile.inc src/common/lib/libc/Makefile.inc --- _/src/common/lib/libc/Makefile.inc 2012-02-28 18:53:46.000000000 +0900 +++ src/common/lib/libc/Makefile.inc 2012-05-11 00:00:00.000000000 +0900 @@ -2,7 +2,8 @@ COMMON_DIR:=${.PARSEDIR} .if defined(__MINIX) -COMMON_CODEDIRS=atomic gen inet md net quad stdlib string +#COMMON_CODEDIRS=atomic gen inet md net quad stdlib string +COMMON_CODEDIRS=gen inet md net quad stdlib string .else COMMON_CODEDIRS=atomic gen gmon inet md net quad stdlib string sys .endif diff -r -u _/src/drivers/Makefile src/drivers/Makefile --- _/src/drivers/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/drivers/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -6,7 +6,8 @@ .if ${MKIMAGEONLY} == "yes" # memory driver must be last for ramdisk image -SUBDIR= at_wini bios_wini floppy log tty pci .WAIT ramdisk .WAIT memory +#SUBDIR= at_wini bios_wini floppy log tty pci .WAIT ramdisk .WAIT memory +SUBDIR= log tty .WAIT ramdisk .WAIT memory .else diff -r -u _/src/drivers/log/Makefile src/drivers/log/Makefile --- _/src/drivers/log/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/drivers/log/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -1,6 +1,10 @@ # Makefile for log driver PROG= log SRCS= log.c diag.c liveupdate.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) DPADD+= ${LIBCHARDRIVER} ${LIBSYS} LDADD+= -lchardriver -lsys diff -r -u _/src/drivers/memory/Makefile src/drivers/memory/Makefile --- _/src/drivers/memory/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/drivers/memory/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -1,6 +1,10 @@ # Makefile for memory driver (MEMORY) PROG= memory SRCS= memory.c imgrd.mfs +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c read_tsc_64.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) OBJS= ${SRCS:N*.h:R:S/$/.o/g} DPADD+= ${LIBBLOCKDRIVER} ${LIBCHARDRIVER} ${LIBSYS} @@ -23,7 +27,8 @@ # but bsd.own.mk has to be upgraded for that. .mfs.o: ${_MKTARGET_CREATE} - ${OBJCOPY} -Ibinary -B${ARCH} -Oelf32-${ARCH}-minix $< $@ +# ${OBJCOPY} -Ibinary -B${ARCH} -Oelf32-${ARCH}-minix $< $@ + ${OBJCOPY} -Ibinary -B${ARCH} -Oelf32-little${ARCH} $< $@ imgrd.mfs: ln -s ../ramdisk/image $@ diff -r -u _/src/drivers/ramdisk/Makefile src/drivers/ramdisk/Makefile --- _/src/drivers/ramdisk/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/drivers/ramdisk/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -29,14 +29,18 @@ realall: image -image: proto.gen mtab rc $(EXTRA) - mkfs.mfs image proto.gen || { rm -f image; false; } - if fsck.mfs -s image | grep -q CLEAN; \ - then : ; \ - else echo "CLEAN sanity check of image failed." ; \ - echo "(Perhaps install current mkfs and fsck.)" ; \ - rm -f image; false; \ - fi +#image: proto.gen mtab rc $(EXTRA) +image: proto rc ../../commands/ash/sh +# mkfs.mfs image proto.gen || { rm -f image; false; } + dd if=/dev/zero of=image count=2048 + mkffs image proto || { rm -f image; false; } +# if fsck.mfs -s image | grep -q CLEAN; \ +# then : ; \ +# else echo "CLEAN sanity check of image failed." ; \ +# echo "(Perhaps install current mkfs and fsck.)" ; \ +# rm -f image; false; \ +# fi +# mkfs.mfs image proto.gen || { rm -f image; false; } ahci: ../ahci/ahci install ${STRIPFLAG} ../$@/$@ $@ diff -r -u _/src/drivers/ramdisk/proto src/drivers/ramdisk/proto --- _/src/drivers/ramdisk/proto 2012-02-28 18:53:46.000000000 +0900 +++ src/drivers/ramdisk/proto 2012-05-11 00:00:00.000000000 +0900 @@ -2,38 +2,23 @@ 840 540 d--755 0 0 bin d--755 0 0 - cdprobe ---755 0 0 cdprobe - dev2name ---755 0 0 dev2name - loadramdisk ---755 0 0 loadramdisk - mount ---755 0 0 mount - newroot ---755 0 0 newroot - sh ---755 0 0 sh - service ---755 0 0 service - sysenv ---755 0 0 sysenv - fsck.mfs ---755 0 0 fsck.mfs + sh ---755 0 0 ../../commands/ash/sh $ sbin d--755 0 0 - @ACPI@ - ahci ---755 0 0 ahci - at_wini ---755 0 0 at_wini - bios_wini ---755 0 0 bios_wini - ext2 ---755 0 0 ext2 - floppy ---755 0 0 floppy - pci ---755 0 0 pci - mfs ---755 0 0 mfs - procfs ---755 0 0 procfs $ dev d--755 0 0 -@DEV@ + console c--777 0 0 4 0 + log c--777 0 0 4 15 + null c--777 0 0 1 3 $ etc d--755 0 0 - system.conf ---644 0 0 system.conf - mtab ---644 0 0 mtab - passwd ---644 0 0 passwd - pwd.db ---644 0 0 pwd.db - spwd.db ---600 0 0 spwd.db - master.passwd ---600 0 0 master.passwd + system.conf ---644 0 0 ../../etc/system.conf + mtab ---644 0 0 ../../etc/mtab + passwd ---644 0 0 ../../etc/passwd + pwd.db ---644 0 0 ../../etc/pwd.db + spwd.db ---600 0 0 ../../etc/spwd.db + master.passwd ---600 0 0 ../../etc/master.passwd rc ---755 0 0 rc - rs.single ---755 0 0 rs.single + rs.single ---755 0 0 ../../etc/rs.single $ $ diff -r -u _/src/drivers/ramdisk/rc src/drivers/ramdisk/rc --- _/src/drivers/ramdisk/rc 2012-02-28 18:53:46.000000000 +0900 +++ src/drivers/ramdisk/rc 2012-05-11 00:00:00.000000000 +0900 @@ -4,6 +4,11 @@ exec >/dev/log exec 2>/dev/log exec #include #include "tty.h" +#if 0 +#else /* patch */ +#define DEVICE_BASE 0 +#include "device.h" +unsigned char *device_cons; +#endif /* Set this to 1 if you want console output duplicated on the first * serial line. @@ -240,6 +246,7 @@ register console_t *cons; /* pointer to console struct */ int c; /* character to be output */ { +#if 0 /* Output a character on the console. Check for escape sequences first. */ if (cons->c_esc_state > 0) { parse_escape(cons, c); @@ -326,6 +333,9 @@ cons->c_column++; /* next column */ return; } +#else /* patch */ + *device_cons = c; +#endif } /*===========================================================================* @@ -335,6 +345,7 @@ register console_t *cons; /* pointer to console struct */ int dir; /* SCROLL_UP or SCROLL_DOWN */ { +#if 0 unsigned new_line, new_org, chars; flush(cons); @@ -378,6 +389,8 @@ mem_vid_copy(BLANK_MEM, new_line, scr_width); flush(cons); +#else /* patch */ +#endif } /*===========================================================================* @@ -386,6 +399,7 @@ PRIVATE void flush(cons) register console_t *cons; /* pointer to console struct */ { +#if 0 /* Send characters buffered in 'ramqueue' to screen memory, check the new * cursor position, compute the new hardware cursor position and set it. */ @@ -410,6 +424,8 @@ cur = cons->c_org + cons->c_row * scr_width + cons->c_column; if (cur != cons->c_cur) UPDATE_CURSOR(cons, cur); +#else /* patch */ +#endif } /*===========================================================================* @@ -478,6 +494,7 @@ register console_t *cons; /* pointer to console struct */ char c; /* next character in escape sequence */ { +#if 0 int value, n; unsigned src, dst, count; int *parmp; @@ -711,6 +728,8 @@ } } cons->c_esc_state = 0; +#else /* patch */ +#endif } /*===========================================================================* @@ -720,6 +739,7 @@ int reg; /* which register pair to set */ unsigned val; /* 16-bit value to set it to */ { +#if 0 /* Set a register pair inside the 6845. * Registers 12-13 tell the 6845 where in video ram to start * Registers 14-15 tell the 6845 where to put the cursor @@ -730,6 +750,8 @@ pv_set(char_out[2], vid_port + INDEX, reg + 1); /* again */ pv_set(char_out[3], vid_port + DATA, val&BYTE); /* low byte */ sys_voutb(char_out, 4); /* do actual output */ +#else /* patch */ +#endif } #if 0 @@ -740,6 +762,7 @@ int reg; /* which register pair to set */ unsigned *val; /* 16-bit value to set it to */ { +#if 0 char v1, v2; unsigned long v; /* Get a register pair inside the 6845. */ @@ -750,6 +773,8 @@ sys_inb(vid_port + DATA, &v); v2 = v; *val = (v1 << 8) | v2; +#else /* patch */ +#endif } #endif @@ -758,6 +783,7 @@ *===========================================================================*/ PRIVATE void beep() { +#if 0 /* Making a beeping sound on the speaker (output for CRTL-G). * This routine works by turning on the bits 0 and 1 in port B of the 8255 * chip that drive the speaker. @@ -780,6 +806,8 @@ beeping = TRUE; } } +#else /* patch */ +#endif } @@ -865,6 +893,7 @@ unsigned freq; clock_t dur; { +#if 0 /* Making a beeping sound on the speaker. * This routine works by turning on the bits 0 and 1 in port B of the 8255 * chip that drive the speaker. @@ -891,6 +920,8 @@ beeping = TRUE; } } +#else /* patch */ +#endif } /*===========================================================================* @@ -898,11 +929,14 @@ *===========================================================================*/ PRIVATE void stop_beep(timer_t *UNUSED(tmrp)) { +#if 0 /* Turn off the beeper by turning off bits 0 and 1 in PORT_B. */ unsigned long port_b_val; if (sys_inb(PORT_B, &port_b_val)==OK && sys_outb(PORT_B, (port_b_val & ~3))==OK) beeping = FALSE; +#else /* patch */ +#endif } /*===========================================================================* @@ -937,6 +971,7 @@ if (! vdu_initialized++) { /* FIXME: How about error checking? What to do on failure??? */ +#if 0 s=sys_readbios(VDU_SCREEN_COLS_ADDR, &bios_columns, VDU_SCREEN_COLS_SIZE); s=sys_readbios(VDU_CRT_BASE_ADDR, &bios_crtbase, @@ -945,6 +980,8 @@ VDU_SCREEN_ROWS_SIZE); s=sys_readbios(VDU_FONTLINES_ADDR, &bios_fontlines, VDU_FONTLINES_SIZE); +#else /* patch */ +#endif vid_port = bios_crtbase; scr_width = bios_columns; @@ -961,6 +998,7 @@ vid_size = EGA_SIZE; wrap = 0; +#if 0 console_memory = vm_map_phys(SELF, (void *) vid_base, vid_size); if(console_memory == MAP_FAILED) @@ -970,6 +1008,15 @@ if(font_memory == MAP_FAILED) panic("Console couldn't map font memory"); +#else /* patch */ +#endif +#if 0 +#else /* patch */ + device_cons = vm_map_phys(SELF, (void *)DEVICE_CONS_PUTGETCHAR, 1); + if (device_cons == MAP_FAILED) { + panic("scr_init"); + } +#endif vid_size >>= 1; /* word count */ @@ -979,7 +1026,10 @@ scr_size = scr_lines * scr_width; /* There can be as many consoles as video memory allows. */ +#if 0 nr_cons = vid_size / scr_size; +#else /* patch */ +#endif if (nr_cons > NR_CONS) nr_cons = NR_CONS; if (nr_cons > 1) wrap = 0; @@ -994,7 +1044,10 @@ if (line != 0) { /* Clear the non-console vtys. */ blank_color = BLANK_COLOR; +#if 0 mem_vid_copy(BLANK_MEM, cons->c_start, scr_size); +#else /* patch */ +#endif } else { /* Set the cursor of the console vty at the bottom. c_cur * is updated automatically later. @@ -1103,6 +1156,7 @@ *===========================================================================*/ PRIVATE void cons_org0() { +#if 0 /* Scroll video memory back to put the origin at 0. */ int cons_line; console_t *cons; @@ -1120,6 +1174,8 @@ flush(cons); } select_console(ccurrent); +#else /* patch */ +#endif } /*===========================================================================* @@ -1220,6 +1276,7 @@ PRIVATE int ga_program(seq) struct sequence *seq; { +#if 0 pvb_pair_t char_out[14]; int i; for (i=0; i<7; i++) { @@ -1228,6 +1285,8 @@ seq++; } return sys_voutb(char_out, 14); +#else /* patch */ +#endif } /*===========================================================================* diff -r -u _/src/drivers/tty/keyboard.c src/drivers/tty/keyboard.c --- _/src/drivers/tty/keyboard.c 2012-02-28 18:53:46.000000000 +0900 +++ src/drivers/tty/keyboard.c 2012-05-11 00:00:00.000000000 +0900 @@ -24,6 +24,12 @@ #include "kernel/config.h" #include "kernel/type.h" #include "kernel/proc.h" +#if 0 +#else /* patch */ +#define DEVICE_BASE 0 +#include "device.h" +extern unsigned char *device_cons; +#endif PRIVATE u16_t keymap[NR_SCAN_CODES * MAP_COLS] = { #include "keymaps/us-std.src" @@ -489,8 +495,16 @@ struct kbd *kbdp; /* Fetch the character from the keyboard hardware and acknowledge it. */ +#if 0 if (!scan_keyboard(&scode, &isaux)) return; +#else /* patch */ + isaux = 0; + scode = *device_cons; + if (sys_irqenable(&irq_hook_id) != 0) { + panic("kbd_interrupt"); + } +#endif if (isaux) kbdp= &kbdaux; @@ -592,11 +606,18 @@ } /* Function keys are being used for debug dumps (if enabled). */ +#if 0 if (debug_fkeys && func_key(scode)) continue; +#else /* patch */ +#endif /* Perform make/break processing. */ +#if 0 ch = make_break(scode); +#else /* patch */ + ch = scode; +#endif if (ch <= 0xFF) { /* A normal character. */ @@ -675,6 +696,7 @@ *===========================================================================*/ PRIVATE void kbd_send() { +#if 0 unsigned long sb; int r; @@ -720,6 +742,8 @@ kbd_watchdog_set= 1; } +#else /* patch */ +#endif } /*===========================================================================* @@ -835,6 +859,7 @@ *===========================================================================*/ PRIVATE void set_leds() { +#if 0 /* Set the LEDs on the caps, num, and scroll lock keys */ int s; @@ -849,6 +874,8 @@ printf("Warning, sys_outb couldn't give LED values: %d\n", s); /* give keyboard LED values */ kb_ack(); /* wait for ack response */ +#else /* patch */ +#endif } /*===========================================================================* @@ -857,9 +884,12 @@ PRIVATE void kbc_cmd0(cmd) int cmd; { +#if 0 kb_wait(); if(sys_outb(KB_COMMAND, cmd) != OK) printf("kbc_cmd0: sys_outb failed\n"); +#else /* patch */ +#endif } /*===========================================================================* @@ -869,12 +899,15 @@ int cmd; int data; { +#if 0 kb_wait(); if(sys_outb(KB_COMMAND, cmd) != OK) printf("kbc_cmd1: 1 sys_outb failed\n"); kb_wait(); if(sys_outb(KEYBD, data) != OK) printf("kbc_cmd1: 2 sys_outb failed\n"); +#else /* patch */ +#endif } @@ -883,6 +916,7 @@ *===========================================================================*/ PRIVATE int kbc_read() { +#if 0 int i; unsigned long byte, st; #if 0 @@ -923,6 +957,8 @@ #endif panic("kbc_read failed to complete"); return EINVAL; +#else /* patch */ +#endif } @@ -931,6 +967,7 @@ *===========================================================================*/ PRIVATE int kb_wait() { +#if 0 /* Wait until the controller is ready; return zero if this times out. */ int retries; @@ -955,6 +992,8 @@ break; /* wait until ready */ } while (--retries != 0); /* continue unless timeout */ return(retries); /* zero on timeout, positive if ready */ +#else /* patch */ +#endif } /*===========================================================================* @@ -962,6 +1001,7 @@ *===========================================================================*/ PRIVATE int kb_ack() { +#if 0 /* Wait until kbd acknowledges last command; return zero if this times out. */ int retries, s; @@ -978,6 +1018,8 @@ } while(--retries != 0); /* continue unless timeout */ return(retries); /* nonzero if ack received */ +#else /* patch */ +#endif } /*===========================================================================* @@ -1018,13 +1060,18 @@ /* Set interrupt handler and enable keyboard IRQ. */ irq_hook_id = KEYBOARD_IRQ; /* id to be returned on interrupt */ +#if 0 if ((i=sys_irqsetpolicy(KEYBOARD_IRQ, IRQ_REENABLE, &irq_hook_id)) != OK) +#else /* patch */ + if ((i=sys_irqsetpolicy(KEYBOARD_IRQ, 0, &irq_hook_id)) != OK) +#endif panic("Couldn't set keyboard IRQ policy: %d", i); if ((i=sys_irqenable(&irq_hook_id)) != OK) panic("Couldn't enable keyboard IRQs: %d", i); kbd_irq_set |= (1 << KEYBOARD_IRQ); /* Set AUX interrupt handler and enable AUX IRQ. */ +#if 0 aux_irq_hook_id = KBD_AUX_IRQ; /* id to be returned on interrupt */ if ((i=sys_irqsetpolicy(KBD_AUX_IRQ, IRQ_REENABLE, &aux_irq_hook_id)) != OK) @@ -1032,6 +1079,8 @@ if ((i=sys_irqenable(&aux_irq_hook_id)) != OK) panic("Couldn't enable AUX IRQs: %d", i); kbd_irq_set |= (1 << KBD_AUX_IRQ); +#else /* patch */ +#endif /* Disable the keyboard and aux */ kbc_cmd0(KBC_DI_KBD); @@ -1254,6 +1303,7 @@ unsigned char *bp; int *isauxp; { +#if 0 unsigned long b, sb; if(sys_inb(KB_STATUS, &sb) != OK) @@ -1290,6 +1340,8 @@ kbd_send(); } return 1; +#else /* patch */ +#endif } /*===========================================================================* diff -r -u _/src/include/arch/Makefile src/include/arch/Makefile --- _/src/include/arch/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/include/arch/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -53,10 +53,10 @@ # x68k x86_64 xen \ # zaurus -INCSYMLINKS= ${MACHINE} /usr/include/machine +#INCSYMLINKS= ${MACHINE} /usr/include/machine -INCSYMLINKS+= machine/float.h /usr/include/float.h \ - machine/stdarg.h /usr/include/stdarg.h +#INCSYMLINKS+= machine/float.h /usr/include/float.h \ +# machine/stdarg.h /usr/include/stdarg.h .include diff -r -u _/src/include/minix/ansi.h src/include/minix/ansi.h --- _/src/include/minix/ansi.h 2012-02-28 18:53:46.000000000 +0900 +++ src/include/minix/ansi.h 2012-05-11 00:00:00.000000000 +0900 @@ -67,6 +67,10 @@ #include /* Also, do not redefine _BSD_VA_LIST */ +#if 0 +#else /* patch */ +#define _BSD_VA_LIST_ __builtin_va_list +#endif #else /* !__NBSD_LIBC */ diff -r -u _/src/include/minix/config.h src/include/minix/config.h --- _/src/include/minix/config.h 2012-02-28 18:53:46.000000000 +0900 +++ src/include/minix/config.h 2012-05-11 00:00:00.000000000 +0900 @@ -57,7 +57,11 @@ * system can handle. */ #define NR_CONS 4 /* # system consoles (1 to 8) */ +#if 0 #define NR_RS_LINES 4 /* # rs232 terminals (0 to 4) */ +#else /* patch */ +#define NR_RS_LINES 0 /* # rs232 terminals (0 to 4) */ +#endif #define NR_PTYS 32 /* # pseudo terminals (0 to 64) */ /* This feature enable the counting of system calls in PM and FS */ diff -r -u _/src/include/minix/ipc.h src/include/minix/ipc.h --- _/src/include/minix/ipc.h 2012-02-28 18:53:46.000000000 +0900 +++ src/include/minix/ipc.h 2012-05-11 00:00:00.000000000 +0900 @@ -163,13 +163,261 @@ #define senda _senda _PROTOTYPE( int echo, (message *m_ptr) ); +#if 0 _PROTOTYPE( int notify, (endpoint_t dest) ); _PROTOTYPE( int sendrec, (endpoint_t src_dest, message *m_ptr) ); _PROTOTYPE( int receive, (endpoint_t src, message *m_ptr, int *status_ptr)); _PROTOTYPE( int send, (endpoint_t dest, message *m_ptr) ); _PROTOTYPE( int sendnb, (endpoint_t dest, message *m_ptr) ); _PROTOTYPE( int senda, (asynmsg_t *table, size_t count) ); +#else /* patch */ +#if defined(__arm__) +#if defined(MINIX_ENABLE_YK0A) +__inline__ static int notify(endpoint_t dest) { + register int r0 __asm__("r0") = 2; /* YK0A_PROCEDURE_CALL */ + register int r1 __asm__("r1") = 1; + register int r2 __asm__("r2") = 4; /* NOTIFY */ + register int r3 __asm__("r3") = dest; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1), "r"(r2), "r"(r3) : "memory"); + return r0; +} +__inline__ static int sendrec(endpoint_t src_dest, message *m_ptr) { + register int r0 __asm__("r0") = 2; /* YK0A_PROCEDURE_CALL */ + register int r1 __asm__("r1") = 1; + register int r2 __asm__("r2") = 3; /* SENDREC */ + register int r3 __asm__("r3") = src_dest; + register int r4 __asm__("r4") = (int)m_ptr; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4) : "memory"); + return r0; +} +__inline__ static int receive(endpoint_t src, message *m_ptr, int *status_ptr) { + register int r0 __asm__("r0") = 2; /* YK0A_PROCEDURE_CALL */ + register int r1 __asm__("r1") = 1; + register int r2 __asm__("r2") = 2; /* RECEIVE */ + register int r3 __asm__("r3") = src; + register int r4 __asm__("r4") = (int)m_ptr; + __asm__ __volatile__("swi 0" : "=r"(r0), "=r"(r1) : "0"(r0), "1"(r1), "r"(r2), "r"(r3), "r"(r4) : "memory"); + *status_ptr = r1; + return r0; +} +__inline__ static int send(endpoint_t dest, message *m_ptr) { + register int r0 __asm__("r0") = 2; /* YK0A_PROCEDURE_CALL */ + register int r1 __asm__("r1") = 1; + register int r2 __asm__("r2") = 1; /* SEND */ + register int r3 __asm__("r3") = dest; + register int r4 __asm__("r4") = (int)m_ptr; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4) : "memory"); + return r0; +} +__inline__ static int sendnb(endpoint_t dest, message *m_ptr) { + register int r0 __asm__("r0") = 2; /* YK0A_PROCEDURE_CALL */ + register int r1 __asm__("r1") = 1; + register int r2 __asm__("r2") = 5; /* SENDNB */ + register int r3 __asm__("r3") = dest; + register int r4 __asm__("r4") = (int)m_ptr; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4) : "memory"); + return r0; +} +__inline__ static int senda(asynmsg_t *table, size_t count) { + register int r0 __asm__("r0") = 2; /* YK0A_PROCEDURE_CALL */ + register int r1 __asm__("r1") = 1; + register int r2 __asm__("r2") = 16; /* SENDA */ + register int r3 __asm__("r3") = count; + register int r4 __asm__("r4") = (int)table; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4) : "memory"); + return r0; +} +#else +__inline__ static int notify(endpoint_t dest) { + register int r0 __asm__("r0") = 4; /* NOTIFY */ + register int r1 __asm__("r1") = dest; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1) : "memory"); + return r0; +} +__inline__ static int sendrec(endpoint_t src_dest, message *m_ptr) { + register int r0 __asm__("r0") = 3; /* SENDREC */ + register int r1 __asm__("r1") = src_dest; + register int r2 __asm__("r2") = (int)m_ptr; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1), "r"(r2) : "memory"); + return r0; +} +__inline__ static int receive(endpoint_t src, message *m_ptr, int *status_ptr) { + register int r0 __asm__("r0") = 2; /* RECEIVE */ + register int r1 __asm__("r1") = src; + register int r2 __asm__("r2") = (int)m_ptr; + __asm__ __volatile__("swi 0" : "=r"(r0), "=r"(r1) : "0"(r0), "1"(r1), "r"(r2) : "memory"); + *status_ptr = r1; + return r0; +} +__inline__ static int send(endpoint_t dest, message *m_ptr) { + register int r0 __asm__("r0") = 1; /* SEND */ + register int r1 __asm__("r1") = dest; + register int r2 __asm__("r2") = (int)m_ptr; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1), "r"(r2) : "memory"); + return r0; +} +__inline__ static int sendnb(endpoint_t dest, message *m_ptr) { + register int r0 __asm__("r0") = 5; /* SENDNB */ + register int r1 __asm__("r1") = dest; + register int r2 __asm__("r2") = (int)m_ptr; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1), "r"(r2) : "memory"); + return r0; +} +__inline__ static int senda(asynmsg_t *table, size_t count) { + register int r0 __asm__("r0") = 16; /* SENDA */ + register int r1 __asm__("r1") = count; + register int r2 __asm__("r2") = (int)table; + __asm__ __volatile__("swi 0" : "=r"(r0) : "0"(r0), "r"(r1), "r"(r2) : "memory"); + return r0; +} +#endif +#elif defined(__mips__) +#if defined(MINIX_ENABLE_YK0A) +__inline__ static int notify(endpoint_t dest) { + register int gpr2 __asm__("$2") = 2; /* YK0A_PROCEDURE_CALL */ + register int gpr3 __asm__("$3") = 1; + register int gpr4 __asm__("$4") = 4; /* NOTIFY */ + register int gpr5 __asm__("$5") = dest; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3), "r"(gpr4), "r"(gpr5) : "memory"); + return gpr2; +} +__inline__ static int sendrec(endpoint_t src_dest, message *m_ptr) { + register int gpr2 __asm__("$2") = 2; /* YK0A_PROCEDURE_CALL */ + register int gpr3 __asm__("$3") = 1; + register int gpr4 __asm__("$4") = 3; /* SENDREC */ + register int gpr5 __asm__("$5") = src_dest; + register int gpr6 __asm__("$6") = (int)m_ptr; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3), "r"(gpr4), "r"(gpr5), "r"(gpr6) : "memory"); + return gpr2; +} +__inline__ static int receive(endpoint_t src, message *m_ptr, int *status_ptr) { + register int gpr2 __asm__("$2") = 2; /* YK0A_PROCEDURE_CALL */ + register int gpr3 __asm__("$3") = 1; + register int gpr4 __asm__("$4") = 2; /* RECEIVE */ + register int gpr5 __asm__("$5") = src; + register int gpr6 __asm__("$6") = (int)m_ptr; + __asm__ __volatile__("syscall" : "=r"(gpr2), "=r"(gpr3) : "0"(gpr2), "1"(gpr3), "r"(gpr4), "r"(gpr5), "r"(gpr6) : "memory"); + *status_ptr = gpr3; + return gpr2; +} +__inline__ static int send(endpoint_t dest, message *m_ptr) { + register int gpr2 __asm__("$2") = 2; /* YK0A_PROCEDURE_CALL */ + register int gpr3 __asm__("$3") = 1; + register int gpr4 __asm__("$4") = 1; /* SEND */ + register int gpr5 __asm__("$5") = dest; + register int gpr6 __asm__("$6") = (int)m_ptr; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3), "r"(gpr4), "r"(gpr5), "r"(gpr6) : "memory"); + return gpr2; +} +__inline__ static int sendnb(endpoint_t dest, message *m_ptr) { + register int gpr2 __asm__("$2") = 2; /* YK0A_PROCEDURE_CALL */ + register int gpr3 __asm__("$3") = 1; + register int gpr4 __asm__("$4") = 5; /* SENDNB */ + register int gpr5 __asm__("$5") = dest; + register int gpr6 __asm__("$6") = (int)m_ptr; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3), "r"(gpr4), "r"(gpr5), "r"(gpr6) : "memory"); + return gpr2; +} +__inline__ static int senda(asynmsg_t *table, size_t count) { + register int gpr2 __asm__("$2") = 2; /* YK0A_PROCEDURE_CALL */ + register int gpr3 __asm__("$3") = 1; + register int gpr4 __asm__("$4") = 16; /* SENDA */ + register int gpr5 __asm__("$5") = count; + register int gpr6 __asm__("$6") = (int)table; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3), "r"(gpr4), "r"(gpr5), "r"(gpr6) : "memory"); + return gpr2; +} +#else +__inline__ static int notify(endpoint_t dest) { + register int gpr2 __asm__("$2") = 4; /* NOTIFY */ + register int gpr3 __asm__("$3") = dest; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3) : "memory"); + return gpr2; +} +__inline__ static int sendrec(endpoint_t src_dest, message *m_ptr) { + register int gpr2 __asm__("$2") = 3; /* SENDREC */ + register int gpr3 __asm__("$3") = src_dest; + register int gpr4 __asm__("$4") = (int)m_ptr; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3), "r"(gpr4) : "memory"); + return gpr2; +} +__inline__ static int receive(endpoint_t src, message *m_ptr, int *status_ptr) { + register int gpr2 __asm__("$2") = 2; /* RECEIVE */ + register int gpr3 __asm__("$3") = src; + register int gpr4 __asm__("$4") = (int)m_ptr; + __asm__ __volatile__("syscall" : "=r"(gpr2), "=r"(gpr3) : "0"(gpr2), "1"(gpr3), "r"(gpr4) : "memory"); + *status_ptr = gpr3; + return gpr2; +} +__inline__ static int send(endpoint_t dest, message *m_ptr) { + register int gpr2 __asm__("$2") = 1; /* SEND */ + register int gpr3 __asm__("$3") = dest; + register int gpr4 __asm__("$4") = (int)m_ptr; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3), "r"(gpr4) : "memory"); + return gpr2; +} +__inline__ static int sendnb(endpoint_t dest, message *m_ptr) { + register int gpr2 __asm__("$2") = 5; /* SENDNB */ + register int gpr3 __asm__("$3") = dest; + register int gpr4 __asm__("$4") = (int)m_ptr; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3), "r"(gpr4) : "memory"); + return gpr2; +} +__inline__ static int senda(asynmsg_t *table, size_t count) { + register int gpr2 __asm__("$2") = 16; /* SENDA */ + register int gpr3 __asm__("$3") = count; + register int gpr4 __asm__("$4") = (int)table; + __asm__ __volatile__("syscall" : "=r"(gpr2) : "0"(gpr2), "r"(gpr3), "r"(gpr4) : "memory"); + return gpr2; +} +#endif +#else +#error notify sendrec receive send sendnb senda +#endif +#endif +#if 0 _PROTOTYPE( int _do_kernel_call, (message *m_ptr) ); +#else /* patch */ +#if defined(__arm__) +#if defined(MINIX_ENABLE_YK0A) +__inline__ static int _do_kernel_call(message *m_ptr) { + register int r0 __asm__("r0") = 2; /* YK0A_PROCEDURE_CALL */ + register int r1 __asm__("r1") = 1; + register int r2 __asm__("r2") = 0; + register int r3 __asm__("r3") = (int)m_ptr; + __asm__ __volatile__("swi 0" : : "r"(r0), "r"(r1), "r"(r2), "r"(r3) : "memory"); + return 0; +} +#else +__inline__ static int _do_kernel_call(message *m_ptr) { + register int r0 __asm__("r0") = 0; + register int r1 __asm__("r1") = (int)m_ptr; + __asm__ __volatile__("swi 0" : : "r"(r0), "r"(r1) : "memory"); + return 0; +} +#endif +#elif defined(__mips__) +#if defined(MINIX_ENABLE_YK0A) +__inline__ static int _do_kernel_call(message *m_ptr) { + register int gpr2 __asm__("$2") = 2; /* YK0A_PROCEDURE_CALL */ + register int gpr3 __asm__("$3") = 1; + register int gpr4 __asm__("$4") = 0; + register int gpr5 __asm__("$5") = (int)m_ptr; + __asm__ __volatile__("syscall" : : "r"(gpr2), "r"(gpr3), "r"(gpr4), "r"(gpr5) : "memory"); + return 0; +} +#else +__inline__ static int _do_kernel_call(message *m_ptr) { + register int gpr2 __asm__("$2") = 0; + register int gpr3 __asm__("$3") = (int)m_ptr; + __asm__ __volatile__("syscall" : : "r"(gpr2), "r"(gpr3) : "memory"); + return 0; +} +#endif +#else +#error _do_kernel_call +#endif +#endif #endif /* _IPC_H */ diff -r -u _/src/kernel/Makefile src/kernel/Makefile --- _/src/kernel/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/kernel/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -4,7 +4,11 @@ PROG= kernel # first-stage, arch-dependent startup code -SRCS= mpx.S +#SRCS= mpx.S +SRCS= minix.S glue.c read_tsc_64.c +.PATH: ${.CURDIR}/../${ARCH} +CPPFLAGS = -I${.CURDIR}/../../yanakernel0ainc/sample/${ARCH}/common -I${.CURDIR}/../../yanakernel0ainc/kernel/${ARCH} -DMINIX_PROCESS=$(MINIX_PROCESS) +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,MINIX -Wl,-Ttext,$(MINIX_KERNEL) -Wl,--defsym=__text_start=$(MINIX_KERNEL) SRCS+= start.c table.c main.c proc.c \ system.c clock.c utility.c interrupt.c \ cpulocals.c @@ -19,24 +23,26 @@ CFLAGS += -D__kernel__ CPPFLAGS+= -fno-stack-protector -D_NETBSD_SOURCE -LDFLAGS+= -T ${.CURDIR}/arch/${ARCH}/kernel.lds +#LDFLAGS+= -T ${.CURDIR}/arch/${ARCH}/kernel.lds LDFLAGS+= -nostdlib -L${LIBDIR} LDADD+= -lminlib DPADD+= ${LIBMINLIB} -.if ${CC} == "gcc" +#.if ${CC} == "gcc" +.if ${CC} == "gcc" || defined(EXTERNAL_TOOLCHAIN) LDADD+= -lgcc -lsys -lgcc -lminc .elif ${CC} == "clang" LDADD+= -L/usr/pkg/lib -L/usr/pkg/compiler-rt/lib -lCompilerRT-Generic -lsys -lCompilerRT-Generic -lminc DPADD+= ${LIBC} .endif -CPPFLAGS+= -I${.CURDIR} -I${.CURDIR}/arch/${ARCH}/include -I${MINIXSRCDIR} +#CPPFLAGS+= -I${.CURDIR} -I${.CURDIR}/arch/${ARCH}/include -I${MINIXSRCDIR} +CPPFLAGS+= -I${.CURDIR} -I${.CURDIR}/arch/i386/include -I${MINIXSRCDIR} BINDIR= /usr/sbin MAN= .include "system/Makefile.inc" -.include "arch/${ARCH}/Makefile.inc" +#.include "arch/${ARCH}/Makefile.inc" .if ${USE_WATCHDOG} != "no" SRCS+= watchdog.c arch_watchdog.c diff -r -u _/src/kernel/arch/i386/include/archconst.h src/kernel/arch/i386/include/archconst.h --- _/src/kernel/arch/i386/include/archconst.h 2012-02-28 18:53:46.000000000 +0900 +++ src/kernel/arch/i386/include/archconst.h 2012-05-11 00:00:00.000000000 +0900 @@ -132,8 +132,20 @@ #define LIMIT_HIGH 0x0F /* mask for high bits of limit */ /* Program stack words and masks. */ +#if 0 #define INIT_PSW 0x0200 /* initial psw */ #define INIT_TASK_PSW 0x1200 /* initial psw for tasks (with IOPL 1) */ +#else /* patch */ +#if defined(__arm__) +#define INIT_PSW 0x50 /* I = 0, F = 1, M = 0x10 */ +#define INIT_TASK_PSW 0x5f /* I = 0, F = 1, M = 0x1f */ +#elif defined(__mips__) +#define INIT_PSW 0x11 /* KSU = 2, IE = 1 */ +#define INIT_TASK_PSW 0x01 /* KSU = 0, IE = 1 */ +#else +#error INIT_USER_PSW INIT_TASK_PSW +#endif +#endif #define TRACEBIT 0x0100 /* OR this with psw in proc[] for tracing */ #define SETPSW(rp, new) /* permits only certain bits to be set */ \ ((rp)->p_reg.psw = ((rp)->p_reg.psw & ~0xCD5) | ((new) & 0xCD5)) diff -r -u _/src/kernel/ipc.h src/kernel/ipc.h --- _/src/kernel/ipc.h 2012-02-28 18:53:46.000000000 +0900 +++ src/kernel/ipc.h 2012-05-11 00:00:00.000000000 +0900 @@ -15,7 +15,17 @@ (target->p_getfrom_e == ANY || target->p_getfrom_e == source_ep)) /* IPC status code macros. */ +#if 0 #define IPC_STATUS_REG bx +#else /* patch */ +#if defined(__arm__) +#define IPC_STATUS_REG r1 +#elif defined(__mips__) +#define IPC_STATUS_REG gpr3 +#else +#error IPC_STATUS_REG +#endif +#endif #define IPC_STATUS_GET(p) ((p)->p_reg.IPC_STATUS_REG) #define IPC_STATUS_CLEAR(p) ((p)->p_reg.IPC_STATUS_REG = 0) diff -r -u _/src/kernel/main.c src/kernel/main.c --- _/src/kernel/main.c 2012-02-28 18:53:46.000000000 +0900 +++ src/kernel/main.c 2012-05-11 00:00:00.000000000 +0900 @@ -104,7 +104,10 @@ #endif switch_to_user(); +#if 0 NOT_REACHABLE; +#else /* patch */ +#endif } /*===========================================================================* @@ -302,7 +305,10 @@ bsp_finish_booting(); #endif +#if 0 NOT_REACHABLE; +#else /* patch */ +#endif return 1; } diff -r -u _/src/kernel/proc.c src/kernel/proc.c --- _/src/kernel/proc.c 2012-02-28 18:53:46.000000000 +0900 +++ src/kernel/proc.c 2012-05-11 00:00:00.000000000 +0900 @@ -417,7 +417,10 @@ * to userspace. This function does not return */ restore_user_context(p); +#if 0 NOT_REACHABLE; +#else /* patch */ +#endif } /* diff -r -u _/src/kernel/start.c src/kernel/start.c --- _/src/kernel/start.c 2012-02-28 18:53:46.000000000 +0900 +++ src/kernel/start.c 2012-05-11 00:00:00.000000000 +0900 @@ -28,12 +28,52 @@ register char *value; /* value in key=value pair */ extern int etext, end; int h; +#if 0 +#else /* patch */ +#if defined(__arm__) + extern int __text_start; /* ToDo: linker script */ + extern int __data_start; +#elif defined(__mips__) + extern int _ftext; + extern int _fdata; +#else +#error cstart +#endif +#endif /* Record where the kernel and the monitor are. */ +#if 0 kinfo.code_base = seg2phys(cs); +#else /* patch */ +#if defined(__arm__) + kinfo.code_base = (phys_bytes)&__text_start; +#elif defined(__mips__) + kinfo.code_base = (phys_bytes)&_ftext; +#else +#error cstart +#endif +#endif +#if 0 kinfo.code_size = (phys_bytes) &etext; /* size of code segment */ +#else /* patch */ + kinfo.code_size = (phys_bytes) &etext - kinfo.code_base; /* size of code segment */ +#endif +#if 0 kinfo.data_base = seg2phys(ds); +#else /* patch */ +#if defined(__arm__) + kinfo.data_base = (phys_bytes)&__data_start; +#elif defined(__mips__) + kinfo.data_base = (phys_bytes)&_fdata; +#else +#error cstart +#endif +#endif +#if 0 kinfo.data_size = (phys_bytes) &end; /* size of data segment */ +#else /* patch */ + kinfo.data_size = (phys_bytes) &end - kinfo.data_base; /* size of data segment */ +#endif /* protection initialization */ prot_init(); diff -r -u _/src/kernel/system/do_sigreturn.c src/kernel/system/do_sigreturn.c --- _/src/kernel/system/do_sigreturn.c 2012-02-28 18:53:46.000000000 +0900 +++ src/kernel/system/do_sigreturn.c 2012-05-11 00:00:00.000000000 +0900 @@ -36,10 +36,21 @@ return r; /* Restore user bits of psw from sc, maintain system bits from proc. */ +#if 0 +#else /* patch */ +#if defined(__arm__) +#define X86_FLAGS_USER 0xf0000000 /* N, Z, C, V */ +#elif defined(__mips__) +#define X86_FLAGS_USER 0 +#else +#error do_sigreturn +#endif +#endif sc.sc_psw = (sc.sc_psw & X86_FLAGS_USER) | (rp->p_reg.psw & ~X86_FLAGS_USER); #if (_MINIX_CHIP == _CHIP_INTEL) +#if 0 /* Don't panic kernel if user gave bad selectors. */ sc.sc_cs = rp->p_reg.cs; sc.sc_ds = rp->p_reg.ds; @@ -49,6 +60,8 @@ sc.sc_fs = rp->p_reg.fs; sc.sc_gs = rp->p_reg.gs; #endif +#else /* patch */ +#endif #endif /* Restore the registers. */ diff -r -u _/src/kernel/system/do_sigsend.c src/kernel/system/do_sigsend.c --- _/src/kernel/system/do_sigsend.c 2012-02-28 18:53:46.000000000 +0900 +++ src/kernel/system/do_sigsend.c 2012-05-11 00:00:00.000000000 +0900 @@ -81,8 +81,23 @@ return r; /* Reset user registers to execute the signal handler. */ +#if 0 rp->p_reg.sp = (reg_t) frp; +#else /* patch */ + rp->p_reg.sp = (reg_t) frp - MINIX_ARGUMENT; /* ToDo: stack alignment */ +#endif rp->p_reg.pc = (reg_t) smsg.sm_sighandler; +#if 0 +#else /* patch */ + rp->p_reg.lr = smsg.sm_sigreturn; +#if defined(__arm__) + rp->p_reg.retreg = smsg.sm_signo; +#elif defined(__mips__) + rp->p_reg.gpr4 = smsg.sm_signo; +#else +#error do_sigsend +#endif +#endif /* Signal handler should get clean FPU. */ rp->p_misc_flags &= ~MF_FPU_INITIALIZED; diff -r -u _/src/kernel/system.c src/kernel/system.c --- _/src/kernel/system.c 2012-02-28 18:53:46.000000000 +0900 +++ src/kernel/system.c 2012-05-11 00:00:00.000000000 +0900 @@ -32,6 +32,10 @@ * Sep 30, 2004 source code documentation updated (Jorrit N. Herder) */ +#if 0 +#else /* patch */ +#include "y_device.h" +#endif #include "debug.h" #include "kernel.h" #include "system.h" @@ -374,6 +378,17 @@ panic("send_sig to empty process: %d", ep); rp = proc_addr(proc_nr); +#if 0 +#else /* patch */ + if (priv(rp) == NULL) { +y_device_cons_put_string("{send_sig "); +y_device_cons_put_string(rp->p_name); +y_device_cons_put_string(" "); +y_device_cons_put_hexadecimal(sig_nr); +y_device_cons_put_string(" (priv(rp) == NULL)}\n"); + return; + } +#endif sigaddset(&priv(rp)->s_sig_pending, sig_nr); mini_notify(proc_addr(SYSTEM), rp->p_endpoint); } diff -r -u _/src/lib/Makefile src/lib/Makefile --- _/src/lib/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -1,12 +1,18 @@ .include -SUBDIR= csu libcompat_minix libc libblockdriver libchardriver \ - libnetdriver libedit libm libsys libtimers libutil \ - libl libhgfs libz libfetch libvtreefs libaudiodriver libmthread \ - libexec libdevman libusb libminlib libasyn \ - libddekit libminixfs libbdev libelf libminc libcrypt libterminfo \ - libcurses libvassert libutil libpuffs librefuse libbz2 libarchive libprop +#SUBDIR= csu libcompat_minix libc libblockdriver libchardriver \ +# libnetdriver libedit libm libsys libtimers libutil \ +# libl libhgfs libz libfetch libvtreefs libaudiodriver libmthread \ +# libexec libdevman libusb libminlib libasyn \ +# libddekit libminixfs libbdev libelf libminc libcrypt libterminfo \ +# libcurses libvassert libutil libpuffs librefuse libbz2 libarchive libprop +SUBDIR= libcompat_minix libc libblockdriver libchardriver \ + libedit libsys libtimers \ + libl libmthread \ + libexec libminlib libasyn \ + libminixfs libbdev libminc libterminfo \ + -SUBDIR+= ../external/public-domain/xz/lib +#SUBDIR+= ../external/public-domain/xz/lib .include diff -r -u _/src/lib/libc/Makefile src/lib/libc/Makefile --- _/src/lib/libc/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -27,12 +27,14 @@ LIBCDIR= ${.CURDIR} -.if exists (${ARCHDIR}/Makefile.inc) +#.if exists (${ARCHDIR}/Makefile.inc) +.if 0 .PATH: ${ARCHDIR} .include "${ARCHDIR}/Makefile.inc" .endif -.if exists (${ARCHDIR}/genassym.cf) +#.if exists (${ARCHDIR}/genassym.cf) +.if 0 DPSRCS+= assym.h CLEANFILES+= assym.h assym.h.tmp diff -r -u _/src/lib/libc/arch/arm/gen/Makefile.inc src/lib/libc/arch/arm/gen/Makefile.inc --- _/src/lib/libc/arch/arm/gen/Makefile.inc 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/arch/arm/gen/Makefile.inc 2012-05-11 00:00:00.000000000 +0900 @@ -17,9 +17,10 @@ SRCS+= _setjmp.S SRCS+= sigsetjmp.S -SRCS+= makecontext.c resumecontext.c swapcontext.S +#SRCS+= makecontext.c resumecontext.c swapcontext.S +SRCS+= resumecontext.c -SRCS+= _lwp.c +#SRCS+= _lwp.c LSRCS.arm.gen= Lint_bswap16.c Lint_bswap32.c Lint_swapcontext.c LSRCS+= ${LSRCS.arm.gen} diff -r -u _/src/lib/libc/arch/mips/gen/Makefile.inc src/lib/libc/arch/mips/gen/Makefile.inc --- _/src/lib/libc/arch/mips/gen/Makefile.inc 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/arch/mips/gen/Makefile.inc 2012-05-11 00:00:00.000000000 +0900 @@ -22,12 +22,13 @@ fpsetround.c fpsetsticky.c .endif -SRCS+= setjmp.S longjmp.c -SRCS+= _setjmp.S -SRCS+= sigsetjmp.S +#SRCS+= setjmp.S longjmp.c +#SRCS+= _setjmp.S +#SRCS+= sigsetjmp.S SRCS+= byte_swap_2.S byte_swap_4.S byte_swap_8.S -SRCS+= makecontext.c resumecontext.c _resumecontext.S swapcontext.S _lwp.c +#SRCS+= makecontext.c resumecontext.c _resumecontext.S swapcontext.S _lwp.c +SRCS+= resumecontext.c # mips abi builtin extensions (used by GCC for lexical-closure trampoline) SRCS+= cacheflush.c diff -r -u _/src/lib/libc/compat-minix/Makefile.inc src/lib/libc/compat-minix/Makefile.inc --- _/src/lib/libc/compat-minix/Makefile.inc 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/compat-minix/Makefile.inc 2012-05-11 00:00:00.000000000 +0900 @@ -35,5 +35,6 @@ ${ASM}: ${_MKTARGET_CREATE} - printf '/* MINIX3 */\n\n/*\n * Compatibility jump table for renamed symbols.\n *\n * DO NOT EDIT: this file is automatically generated.\n */\n.global ${.PREFIX:S/^compat__//:C/([0-9]{2})$//};\n.global ${.PREFIX:S/^compat//};\n${.PREFIX:S/^compat__//:C/([0-9]{2})$//}: jmp ${.PREFIX:S/^compat//}\n' >${.TARGET} +# printf '/* MINIX3 */\n\n/*\n * Compatibility jump table for renamed symbols.\n *\n * DO NOT EDIT: this file is automatically generated.\n */\n.global ${.PREFIX:S/^compat__//:C/([0-9]{2})$//};\n.global ${.PREFIX:S/^compat//};\n${.PREFIX:S/^compat__//:C/([0-9]{2})$//}: jmp ${.PREFIX:S/^compat//}\n' >${.TARGET} + printf '/* MINIX3 */\n\n/*\n * Compatibility jump table for renamed symbols.\n *\n * DO NOT EDIT: this file is automatically generated.\n */\n.global ${.PREFIX:S/^compat__//:C/([0-9]{2})$//};\n.global ${.PREFIX:S/^compat//};\n${.PREFIX:S/^compat__//:C/([0-9]{2})$//}: b ${.PREFIX:S/^compat//}\n' >${.TARGET} diff -r -u _/src/lib/libc/locale/setlocale.c src/lib/libc/locale/setlocale.c --- _/src/lib/libc/locale/setlocale.c 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/locale/setlocale.c 2012-05-11 00:00:00.000000000 +0900 @@ -114,7 +114,11 @@ { _locale_category_t * const *p; +#if 0 __link_set_foreach(p, all_categories) { +#else /* patch */ + for (p = &__link_set_all_categories.__ls_items[0]; p < &__link_set_all_categories.__ls_items[__link_set_all_categories.__ls_length]; ++p) { +#endif if ((*p)->category == category) return *p; } diff -r -u _/src/lib/libc/quad/Makefile.inc src/lib/libc/quad/Makefile.inc --- _/src/lib/libc/quad/Makefile.inc 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/quad/Makefile.inc 2012-05-11 00:00:00.000000000 +0900 @@ -2,8 +2,12 @@ # @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 # Quad support +#SRCS.quad= cmpdi2.c divdi3.c fixdfdi.c fixsfdi.c fixunsdfdi.c \ +# fixunssfdi.c floatdidf.c floatdisf.c floatunsdidf.c \ +# moddi3.c muldi3.c negdi2.c qdivrem.c \ +# ucmpdi2.c udivdi3.c umoddi3.c SRCS.quad= cmpdi2.c divdi3.c fixdfdi.c fixsfdi.c fixunsdfdi.c \ - fixunssfdi.c floatdidf.c floatdisf.c floatunsdidf.c \ + fixunssfdi.c floatdisf.c floatunsdidf.c \ moddi3.c muldi3.c negdi2.c qdivrem.c \ ucmpdi2.c udivdi3.c umoddi3.c diff -r -u _/src/lib/libc/sys-minix/Makefile.inc src/lib/libc/sys-minix/Makefile.inc --- _/src/lib/libc/sys-minix/Makefile.inc 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/sys-minix/Makefile.inc 2012-05-11 00:00:00.000000000 +0900 @@ -21,4 +21,4 @@ # Minix specific syscalls. SRCS+= cprofile.c lseek64.c sprofile.c _mcontext.c -.include "${ARCHDIR}/sys-minix/Makefile.inc" +#.include "${ARCHDIR}/sys-minix/Makefile.inc" diff -r -u _/src/lib/libc/sys-minix/_ucontext.c src/lib/libc/sys-minix/_ucontext.c --- _/src/lib/libc/sys-minix/_ucontext.c 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/sys-minix/_ucontext.c 2012-05-11 00:00:00.000000000 +0900 @@ -9,8 +9,20 @@ #include #include #include +#if 0 +#else /* patch */ +#include +#endif +#if 0 _PROTOTYPE( void ctx_start, (void (*)(void), int, ...) ); +#else /* patch */ +_PROTOTYPE( void ctx_start, (void (*)(void), ucontext_t *) ); +void ctx_start(void (*f)(void), ucontext_t *u) { + f(); + resumecontext(u); +} +#endif /*===========================================================================* * setuctx * @@ -116,7 +128,12 @@ stack_top = (unsigned int *) ((uintptr_t) stack_top & ~0xf); /* Make room for 'func', the `func' routine arguments, and ucp. */ +#if 0 stack_top -= (1 + argc + 1); +#else /* patch */ + assert(argc == 0); /* ToDo: ucontext.h */ + stack_top = (unsigned int *)((uintptr_t)stack_top - MINIX_ARGUMENT); +#endif /* Adjust the machine context to point to the top of this stack and the program counter to the context start wrapper. */ @@ -124,7 +141,17 @@ ucp->uc_mcontext.mc_p_reg.sp = (reg_t) stack_top; ucp->uc_mcontext.mc_p_reg.pc = (reg_t) ctx_start; +#if 0 *stack_top++ = (uintptr_t) func; +#else /* patch */ +#if defined(__arm__) + ucp->uc_mcontext.mc_p_reg.retreg = (uintptr_t) func; +#elif defined(__mips__) + ucp->uc_mcontext.mc_p_reg.gpr4 = (uintptr_t) func; +#else +#error makecontext +#endif +#endif /* Copy arguments to the stack. */ va_start(ap, argc); @@ -134,12 +161,25 @@ va_end(ap); /* Store ucp on the stack */ +#if 0 *stack_top = (uintptr_t) ucp; +#else /* patch */ +#if defined(__arm__) + ucp->uc_mcontext.mc_p_reg.r1 = (uintptr_t) ucp; +#elif defined(__mips__) + ucp->uc_mcontext.mc_p_reg.gpr5 = (uintptr_t) ucp; +#else +#error makecontext +#endif +#endif /* Set ESI to point to the base of the stack where ucp is stored, so that the wrapper function knows how to clean up the stack after calling `func' (i.e., how to adjust ESP). */ +#if 0 ucp->uc_mcontext.mc_p_reg.si = (reg_t) stack_top; +#else /* patch */ +#endif /* If we ran out of stack space, invalidate stack pointer. Eventually, diff -r -u _/src/lib/libc/sys-minix/getdents.c src/lib/libc/sys-minix/getdents.c --- _/src/lib/libc/sys-minix/getdents.c 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/sys-minix/getdents.c 2012-05-11 00:00:00.000000000 +0900 @@ -4,7 +4,11 @@ #include +#if 0 PUBLIC ssize_t getdents(fd, buffer, nbytes) +#else /* patch */ +PUBLIC int getdents(fd, buffer, nbytes) +#endif int fd; char *buffer; size_t nbytes; diff -r -u _/src/lib/libc/sys-minix/readlink.c src/lib/libc/sys-minix/readlink.c --- _/src/lib/libc/sys-minix/readlink.c 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/sys-minix/readlink.c 2012-05-11 00:00:00.000000000 +0900 @@ -9,7 +9,11 @@ __weak_alias(readlink, _readlink) #endif +#if 0 int readlink(const char *name, char *buffer, size_t bufsiz) +#else /* patch */ +ssize_t readlink(const char *name, char *buffer, size_t bufsiz) +#endif { message m; diff -r -u _/src/lib/libc/sys-minix/stime.c src/lib/libc/sys-minix/stime.c --- _/src/lib/libc/sys-minix/stime.c 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libc/sys-minix/stime.c 2012-05-11 00:00:00.000000000 +0900 @@ -8,7 +8,11 @@ __weak_alias(stime, _stime) #endif +#if 0 int stime(long *top) +#else /* patch */ +int stime(time_t *top) +#endif { message m; diff -r -u _/src/lib/libedit/editline.c src/lib/libedit/editline.c --- _/src/lib/libedit/editline.c 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libedit/editline.c 2012-05-11 00:00:00.000000000 +0900 @@ -97,8 +97,13 @@ ** Declarations. */ STATIC CHAR *editinput(); +#if 0 extern int read(); extern int write(); +#else /* patch */ +extern ssize_t read(); +extern ssize_t write(); +#endif #if defined(USE_TERMCAP) extern char *tgetstr(); extern int tgetent(); diff -r -u _/src/lib/libminc/Makefile src/lib/libminc/Makefile --- _/src/lib/libminc/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libminc/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -16,7 +16,17 @@ # Shared libc with userspace (/common/lib/libc) # .include "${MINIXSRCDIR}/common/lib/libc/Makefile.inc" +.if ${MACHINE} == "i386" .include "${.CURDIR}/arch/${MACHINE}/Makefile.libc.inc" +.endif +.if ${MACHINE} == "arm" +SRCS += byte_swap_2.S byte_swap_4.S divsi3.S +SRCS += ffs.S memcmp.S memcpy.S memmove.S memset.S strcmp.S strncmp.S +.endif +.if ${MACHINE} == "mips" +SRCS += byte_swap_2.S byte_swap_4.S byte_swap_8.S +SRCS += bcopy.S ffs.S memcpy.S memmove.S strchr.S strcmp.S strlen.S strrchr.S +.endif .if empty(SRCS:Mbyte_swap_8.*) SRCS+= bswap64.c .endif @@ -77,6 +87,16 @@ ${MINIXSRCDIR}/include/sys/errno.h cat ${MINIXSRCDIR}/include/sys/errno.h | ${TOOL_SED} 's/(_SIGN//' | ${TOOL_AWK} -f ${LIBCSRCDIR}/gen/errlist.awk > ${.TARGET} +#.for i in assert.c _errno.c errno.c _env.c errlist.c \ +# execle.c getprogname.c sleep.c time.c \ +# ctype_.c isctype.c tolower_.c toupper_.c \ +# infinityf_ieee754.c infinity_ieee754.c \ +# fpclassifyf_ieee754.c fpclassifyd_ieee754.c \ +# isinff_ieee754.c isinfd_ieee754.c \ +# isnanf_ieee754.c isnand_ieee754.c \ +# isfinitef_ieee754.c isfinited_ieee754.c \ +# signbitf_ieee754.c signbitd_ieee754.c \ +# nanf.c infinityl.c .for i in assert.c _errno.c errno.c _env.c errlist.c \ execle.c getprogname.c sleep.c time.c \ ctype_.c isctype.c tolower_.c toupper_.c \ @@ -86,7 +106,7 @@ isnanf_ieee754.c isnand_ieee754.c \ isfinitef_ieee754.c isfinited_ieee754.c \ signbitf_ieee754.c signbitd_ieee754.c \ - nanf.c infinityl.c + nanf.c .PATH.c: ${LIBCSRCDIR}/arch/${MACHINE}/gen ${LIBCSRCDIR}/gen/minix \ ${LIBCSRCDIR}/gen ${LIBCSRCDIR} SRCS+= ${i} @@ -103,8 +123,10 @@ CPPFLAGS.${i}+= -I${LIBCSRCDIR}/include .endfor # Import from string +#.for i in strcspn.c strerror.c strerror_r.c strtol.c \ +# bcmp.S bcopy.S bzero.S .for i in strcspn.c strerror.c strerror_r.c strtol.c \ - bcmp.S bcopy.S bzero.S + bcopy.S bzero.S .PATH.S: ${LIBCSRCDIR}/arch/${MACHINE}/string .PATH.c: ${LIBCSRCDIR}/string SRCS+= ${i} @@ -124,12 +146,18 @@ CPPFLAGS.${i}+= -I${LIBCSRCDIR}/include -I${LIBCSRCDIR}/locale .endfor # Import from sys-minix +#.for i in access.c brk.c close.c environ.c execve.c fork.c \ +# getgid.c getpid.c getuid.c gettimeofday.c loadname.c \ +# link.c mknod.c mmap.c nanosleep.c open.c read.c sbrk.c \ +# select.c setuid.c stat.c stime.c syscall.c umask.c \ +# unlink.c waitpid.c \ +# brksize.S _ipc.S _senda.S .for i in access.c brk.c close.c environ.c execve.c fork.c \ getgid.c getpid.c getuid.c gettimeofday.c loadname.c \ link.c mknod.c mmap.c nanosleep.c open.c read.c sbrk.c \ select.c setuid.c stat.c stime.c syscall.c umask.c \ unlink.c waitpid.c \ - brksize.S _ipc.S _senda.S + .PATH.c: ${LIBCSRCDIR}/sys-minix .PATH.S: ${LIBCSRCDIR}/arch/${MACHINE}/sys-minix SRCS+= ${i} diff -r -u _/src/lib/libminlib/Makefile src/lib/libminlib/Makefile --- _/src/lib/libminlib/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/lib/libminlib/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -31,7 +31,7 @@ INCS+= tools.h -.include "${MACHINE}/Makefile.inc" +#.include "${MACHINE}/Makefile.inc" .include SUBDIR+= pkgconfig diff -r -u _/src/lib/libsys/tickdelay.c src/lib/libsys/tickdelay.c --- _/src/lib/libsys/tickdelay.c 2012-02-28 18:53:47.000000000 +0900 +++ src/lib/libsys/tickdelay.c 2012-05-11 00:00:00.000000000 +0900 @@ -5,7 +5,11 @@ * tickdelay * *===========================================================================*/ PUBLIC int tickdelay(ticks) +#if 0 long ticks; /* number of ticks to wait */ +#else /* patch */ +clock_t ticks; /* number of ticks to wait */ +#endif { /* This function uses the synchronous alarm to delay for a while. This works * even if a previous synchronous alarm was scheduled, because the remaining diff -r -u _/src/make/Makefile src/make/Makefile --- _/src/make/Makefile 2012-02-28 18:53:46.000000000 +0900 +++ src/make/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -31,8 +31,10 @@ # SUBDIR+= unit-tests # .endif -.include -.include +#.include +#.include +VPATH = lst.lib +$(PROG): $(SRCS) # A simple unit-test driver to help catch regressions accept test: diff -r -u _/src/servers/ds/Makefile src/servers/ds/Makefile --- _/src/servers/ds/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/ds/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -1,6 +1,10 @@ # Makefile for Data Store Server (DS) PROG= ds SRCS= main.c store.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) DPADD+= ${LIBSYS} LDADD+= -lsys diff -r -u _/src/servers/init/Makefile src/servers/init/Makefile --- _/src/servers/init/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/init/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -3,6 +3,10 @@ PROG= init SRCS= init.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) MAN= diff -r -u _/src/servers/mfs/Makefile src/servers/mfs/Makefile --- _/src/servers/mfs/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/mfs/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -4,6 +4,10 @@ mount.c misc.c open.c protect.c read.c \ stadir.c stats.c table.c time.c utility.c \ write.c inode.c main.c path.c super.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c read_tsc_64.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) DPADD+= ${LIBMINIXFS} ${LIBBDEV} ${LIBSYS} LDADD+= -lminixfs -lbdev -lsys diff -r -u _/src/servers/mfs/read.c src/servers/mfs/read.c --- _/src/servers/mfs/read.c 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/mfs/read.c 2012-05-11 00:00:00.000000000 +0900 @@ -215,7 +215,11 @@ register struct inode *rip; /* pointer to inode for file to be rd/wr */ u64_t position; /* position within file to read or write */ unsigned off; /* off within the current block */ +#if 0 unsigned int chunk; /* number of bytes to read or write */ +#else /* patch */ +size_t chunk; /* number of bytes to read or write */ +#endif unsigned left; /* max number of bytes wanted after position */ int rw_flag; /* READING or WRITING */ cp_grant_id_t gid; /* grant */ diff -r -u _/src/servers/pfs/Makefile src/servers/pfs/Makefile --- _/src/servers/pfs/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/pfs/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -3,6 +3,10 @@ SRCS= open.c table.c inode.c main.c super.c link.c \ buffer.c read.c misc.c mount.c utility.c stadir.c \ uds.c dev_uds.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) DPADD+= ${LIBSYS} LDADD+= -lsys diff -r -u _/src/servers/pm/Makefile src/servers/pm/Makefile --- _/src/servers/pm/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/pm/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -5,6 +5,10 @@ SRCS= main.c forkexit.c break.c exec.c time.c alarm.c \ signal.c utility.c table.c getset.c misc.c \ profile.c schedule.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) .if ${USE_MCONTEXT} != "no" SRCS+= mcontext.c diff -r -u _/src/servers/pm/main.c src/servers/pm/main.c --- _/src/servers/pm/main.c 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/pm/main.c 2012-05-11 00:00:00.000000000 +0900 @@ -292,8 +292,11 @@ panic("can't sync up with VFS"); #if (CHIP == INTEL) +#if 0 uts_val.machine[0] = 'i'; strcpy(uts_val.machine + 1, itoa(getprocessor())); +#else /* patch */ +#endif #endif system_hz = sys_hz(); diff -r -u _/src/servers/pm/misc.c src/servers/pm/misc.c --- _/src/servers/pm/misc.c 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/pm/misc.c 2012-05-11 00:00:00.000000000 +0900 @@ -39,7 +39,11 @@ #if __i386 "i386", /* architecture */ #else +#if 0 #error /* oops, no 'uname -mk' */ +#else /* patch */ + "", +#endif #endif }; diff -r -u _/src/servers/rs/Makefile src/servers/rs/Makefile --- _/src/servers/rs/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/rs/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -1,6 +1,10 @@ # Makefile for Reincarnation Server (RS) PROG= rs SRCS= exec.c main.c request.c manager.c table.c utility.c memory.c error.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) DPADD+= ${LIBSYS} ${LIBEXEC} LDADD+= -lsys -lexec diff -r -u _/src/servers/sched/Makefile src/servers/sched/Makefile --- _/src/servers/sched/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/sched/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -1,6 +1,10 @@ # Makefile for Scheduler (SCHED) PROG= sched SRCS= main.c schedule.c utility.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) DPADD+= ${LIBSYS} ${LIBTIMERS} LDADD+= -lsys -ltimers diff -r -u _/src/servers/vfs/Makefile src/servers/vfs/Makefile --- _/src/servers/vfs/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/vfs/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -8,6 +8,10 @@ lock.c misc.c utility.c select.c table.c \ vnode.c vmnt.c request.c fscall.c \ tll.c comm.c worker.c coredump.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c getcontext.S setcontext.S +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) .if ${MKCOVERAGE} != "no" SRCS+= gcov.c diff -r -u _/src/servers/vm/Makefile src/servers/vm/Makefile --- _/src/servers/vm/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/vm/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -5,6 +5,10 @@ SRCS= main.c alloc.c utility.c exec.c exit.c fork.c break.c \ signal.c mmap.c slaballoc.c region.c pagefaults.c addravl.c \ physravl.c rs.c queryexit.c yieldedavl.c regionavl.c +SRCS += __libc_atomic_init.c __sigreturn.S _brksize.S crtso.S crtso_core.c +.PATH: ${.CURDIR}/../../${ARCH} +_PROGLDOPTS = -lc -nostdlib -lgcc +LDFLAGS = -Wl,-Map,$@.map -Wl,--cref -Wl,-e,crtso -Wl,-Ttext,$(MINIX_PROCESS) DPADD+= ${LIBSYS} LDADD+= -lsys @@ -13,8 +17,10 @@ BINDIR?= /usr/sbin -CPPFLAGS+= -I${.CURDIR} -I${.CURDIR}/arch/${ARCH} +#CPPFLAGS+= -I${.CURDIR} -I${.CURDIR}/arch/${ARCH} +CPPFLAGS+= -I${.CURDIR} -I${.CURDIR}/arch/i386 CPPFLAGS+= -I${MINIXSRCDIR} -.include "arch/${ARCH}/Makefile.inc" +#.include "arch/${ARCH}/Makefile.inc" +.include "arch/i386/Makefile.inc" .include diff -r -u _/src/servers/vm/arch/i386/Makefile.inc src/servers/vm/arch/i386/Makefile.inc --- _/src/servers/vm/arch/i386/Makefile.inc 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/vm/arch/i386/Makefile.inc 2012-05-11 00:00:00.000000000 +0900 @@ -1,5 +1,6 @@ .include #Arch-specific sources -.PATH: ${.CURDIR}/arch/${ARCH} +#.PATH: ${.CURDIR}/arch/${ARCH} +.PATH: ${.CURDIR}/arch/i386 SRCS+= vm.c pagetable.c #util.S diff -r -u _/src/servers/vm/arch/i386/memory.h src/servers/vm/arch/i386/memory.h --- _/src/servers/vm/arch/i386/memory.h 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/vm/arch/i386/memory.h 2012-05-11 00:00:00.000000000 +0900 @@ -3,19 +3,31 @@ /* As visible from the user space process, where is the top of the * stack (first non-stack byte), when in paged mode? */ +#if 0 #define VM_STACKTOP 0x80000000 +#else /* patch */ +#define VM_STACKTOP 0x40000000 +#endif /* And what is the highest addressable piece of memory, when in paged * mode? Some data for kernel and stack are subtracted from this, the * final results stored in bytes in arch.vm_data_top. */ +#if 0 #define VM_DATATOP 0xFFFFF000 +#else /* patch */ +#define VM_DATATOP 0x80000000 +#endif #define SLAB_PAGESIZE I386_PAGE_SIZE #define VM_PAGE_SIZE I386_PAGE_SIZE /* Where do processes start in linear (i.e. page table) memory? */ +#if 0 #define VM_PROCSTART (I386_BIG_PAGE_SIZE*100) +#else /* patch */ +#define VM_PROCSTART 0 +#endif #define CLICKSPERPAGE (I386_PAGE_SIZE/CLICK_SIZE) diff -r -u _/src/servers/vm/arch/i386/pagetable.c src/servers/vm/arch/i386/pagetable.c --- _/src/servers/vm/arch/i386/pagetable.c 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/vm/arch/i386/pagetable.c 2012-05-11 00:00:00.000000000 +0900 @@ -644,6 +644,7 @@ PUBLIC void pt_clearmapcache(void) { +#if 0 int f; /* Make sure kernel will invalidate tlb when using current * pagetable (i.e. vm's) to make new mappings before new cr3 @@ -652,6 +653,8 @@ for(f = first_free_pde; f < first_free_pde+FREE_PDES; f++) { vmprocess->vm_pt.pt_dir[f] = 0; } +#else /* patch */ +#endif } /*===========================================================================* @@ -924,8 +927,11 @@ } /* global bit and 4MB pages available? */ +#if 0 global_bit_ok = _cpufeature(_CPUF_I386_PGE); bigpage_ok = _cpufeature(_CPUF_I386_PSE); +#else /* patch */ +#endif /* Set bit for PTE's and PDE's if available. */ if(global_bit_ok) @@ -941,9 +947,15 @@ free_pde = id_map_high_pde+1; /* Initial (current) range of our virtual address space. */ +#if 0 lo = CLICK2ABS(vmprocess->vm_arch.vm_seg[T].mem_phys); hi = CLICK2ABS(vmprocess->vm_arch.vm_seg[S].mem_phys + vmprocess->vm_arch.vm_seg[S].mem_len); +#else /* patch */ + lo = CLICK2ABS(vmprocess->vm_arch.vm_seg[T].mem_vir); + hi = CLICK2ABS(vmprocess->vm_arch.vm_seg[S].mem_vir + + vmprocess->vm_arch.vm_seg[S].mem_len); +#endif assert(!(lo % I386_PAGE_SIZE)); assert(!(hi % I386_PAGE_SIZE)); @@ -966,8 +978,13 @@ /* We have to write the new position in the PT, * so we can move our segments. */ +#if 0 if(pt_writemap(vmprocess, newpt, v+moveup, v, I386_PAGE_SIZE, I386_VM_PRESENT|I386_VM_WRITE|I386_VM_USER, 0) != OK) +#else /* patch */ + if(pt_writemap(vmprocess, newpt, v+moveup, v + (vmprocess->vm_arch.vm_seg[T].mem_phys - vmprocess->vm_arch.vm_seg[T].mem_vir) * CLICK_SIZE, I386_PAGE_SIZE, + I386_VM_PRESENT|I386_VM_WRITE|I386_VM_USER, 0) != OK) +#endif panic("pt_init: pt_writemap failed"); } @@ -1052,6 +1069,7 @@ I386_VM_PRESENT | I386_VM_USER | I386_VM_WRITE; /* Tell kernel about free pde's. */ +#if 0 first_free_pde = free_pde; while(free_pde*I386_BIG_PAGE_SIZE < VM_PROCSTART && f < FREE_PDES) { if((r=sys_vmctl(SELF, VMCTL_I386_FREEPDE, free_pde++)) != OK) { @@ -1059,6 +1077,8 @@ } f++; } +#else /* patch */ +#endif /* first pde in use by process. */ proc_pde = free_pde; @@ -1235,6 +1255,7 @@ *===========================================================================*/ PUBLIC int pt_mapkernel(pt_t *pt) { +#if 0 int i; /* Any i386 page table needs to map in the kernel address space. */ @@ -1270,6 +1291,9 @@ } return OK; +#else /* patch */ + return 0; +#endif } /*===========================================================================* diff -r -u _/src/servers/vm/arch/i386/vm.c src/servers/vm/arch/i386/vm.c --- _/src/servers/vm/arch/i386/vm.c 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/vm/arch/i386/vm.c 2012-05-11 00:00:00.000000000 +0900 @@ -32,6 +32,7 @@ *===========================================================================*/ PUBLIC vir_bytes arch_map2vir(struct vmproc *vmp, vir_bytes addr) { +#if 0 vir_bytes textstart = CLICK2ABS(vmp->vm_arch.vm_seg[T].mem_phys); vir_bytes datastart = CLICK2ABS(vmp->vm_arch.vm_seg[D].mem_phys); vir_bytes datasegbase = CLICK2ABS(vmp->vm_arch.vm_seg[D].mem_phys - @@ -41,6 +42,9 @@ assert(datastart <= addr || textstart <= addr); return addr - datasegbase; +#else /* patch */ + return addr; +#endif } /*===========================================================================* @@ -125,10 +129,14 @@ *===========================================================================*/ PUBLIC vir_bytes arch_vir2map(struct vmproc *vmp, vir_bytes addr) { +#if 0 vir_bytes datasegbase = CLICK2ABS(vmp->vm_arch.vm_seg[D].mem_phys - vmp->vm_arch.vm_seg[D].mem_vir); return addr + datasegbase; +#else /* patch */ + return addr; +#endif } /*===========================================================================* diff -r -u _/src/servers/vm/main.c src/servers/vm/main.c --- _/src/servers/vm/main.c 2012-02-28 18:53:47.000000000 +0900 +++ src/servers/vm/main.c 2012-05-11 00:00:00.000000000 +0900 @@ -371,8 +371,11 @@ CALLMAP(VM_YIELDBLOCKGETBLOCK, do_yieldblockgetblock); /* Sanity checks */ +#if 0 if(find_kernel_top() >= VM_PROCSTART) panic("kernel loaded too high"); +#else /* patch */ +#endif /* Initialize the structures for queryexit */ init_query_exit(); diff -r -u _/src/share/mk/bsd.inc.mk src/share/mk/bsd.inc.mk --- _/src/share/mk/bsd.inc.mk 2012-02-28 18:53:47.000000000 +0900 +++ src/share/mk/bsd.inc.mk 2012-05-11 00:00:00.000000000 +0900 @@ -14,11 +14,17 @@ # -c is forced on here, in order to preserve modtimes for "make depend" __incinstall: .USE +# @cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \ +# (${_MKSHMSG_INSTALL} ${.TARGET}; \ +# ${_MKSHECHO} "${INSTALL_FILE} -c -o ${BINOWN} -g ${BINGRP} \ +# -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}" && \ +# ${INSTALL_FILE} -c -o ${BINOWN} -g ${BINGRP} \ +# -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}) @cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \ (${_MKSHMSG_INSTALL} ${.TARGET}; \ ${_MKSHECHO} "${INSTALL_FILE} -c -o ${BINOWN} -g ${BINGRP} \ -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}" && \ - ${INSTALL_FILE} -c -o ${BINOWN} -g ${BINGRP} \ + install -D -p \ -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}) .for F in ${INCS:O:u} diff -r -u _/src/share/mk/bsd.kinc.mk src/share/mk/bsd.kinc.mk --- _/src/share/mk/bsd.kinc.mk 2012-02-28 18:53:47.000000000 +0900 +++ src/share/mk/bsd.kinc.mk 2012-05-11 00:00:00.000000000 +0900 @@ -30,22 +30,36 @@ # make sure the directory is OK, and install includes. ${DESTDIR}${INCSDIR}: .EXEC +# @if [ ! -d ${.TARGET} ] || [ -h ${.TARGET} ] ; then \ +# ${_MKSHMSG_CREATE} ${.TARGET}; \ +# /bin/rm -rf ${.TARGET}; \ +# ${_MKSHECHO} ${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} -m 755 \ +# ${.TARGET}; \ +# ${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} -m 755 \ +# ${.TARGET}; \ +# fi @if [ ! -d ${.TARGET} ] || [ -h ${.TARGET} ] ; then \ ${_MKSHMSG_CREATE} ${.TARGET}; \ /bin/rm -rf ${.TARGET}; \ ${_MKSHECHO} ${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} -m 755 \ ${.TARGET}; \ - ${INSTALL_DIR} -o ${BINOWN} -g ${BINGRP} -m 755 \ + install -d -m 755 \ ${.TARGET}; \ fi # -c is forced on here, in order to preserve modtimes for "make depend" __incinstall: .USE +# @cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \ +# (${_MKSHMSG_INSTALL} ${.TARGET}; \ +# ${_MKSHECHO} "${INSTALL_FILE} -c -o ${BINOWN} -g ${BINGRP} \ +# -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}" && \ +# ${INSTALL_FILE} -c -o ${BINOWN} -g ${BINGRP} \ +# -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}) @cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \ (${_MKSHMSG_INSTALL} ${.TARGET}; \ ${_MKSHECHO} "${INSTALL_FILE} -c -o ${BINOWN} -g ${BINGRP} \ -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}" && \ - ${INSTALL_FILE} -c -o ${BINOWN} -g ${BINGRP} \ + install -D -p \ -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}) .for F in ${INCS:O:u} ${DEPINCS:O:u} @@ -65,17 +79,29 @@ .if defined(INCSYMLINKS) && !empty(INCSYMLINKS) incinstall:: +# @(set ${INCSYMLINKS}; \ +# while test $$# -ge 2; do \ +# l=$$1; shift; \ +# t=${DESTDIR}$$1; shift; \ +# if ttarg=`${TOOL_STAT} -qf '%Y' $$t` && \ +# [ "$$l" = "$$ttarg" ]; then \ +# continue ; \ +# fi ; \ +# ${_MKSHMSG_INSTALL} $$t; \ +# ${_MKSHECHO} ${INSTALL_SYMLINK} $$l $$t; \ +# ${INSTALL_SYMLINK} $$l $$t; \ +# done; ) @(set ${INCSYMLINKS}; \ while test $$# -ge 2; do \ l=$$1; shift; \ t=${DESTDIR}$$1; shift; \ - if ttarg=`${TOOL_STAT} -qf '%Y' $$t` && \ - [ "$$l" = "$$ttarg" ]; then \ - continue ; \ - fi ; \ + \ + \ + \ + \ ${_MKSHMSG_INSTALL} $$t; \ ${_MKSHECHO} ${INSTALL_SYMLINK} $$l $$t; \ - ${INSTALL_SYMLINK} $$l $$t; \ + ln -f -s $$l $$t; \ done; ) .endif diff -r -u _/src/share/mk/bsd.lib.mk src/share/mk/bsd.lib.mk --- _/src/share/mk/bsd.lib.mk 2012-02-28 18:53:47.000000000 +0900 +++ src/share/mk/bsd.lib.mk 2012-05-11 00:00:00.000000000 +0900 @@ -79,7 +79,8 @@ # Use purely kernel private headers in rump builds .if !defined(RUMPKERNEL) .if empty(CPPFLAGS:M-nostdinc) -CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} +#CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} +CPPFLAGS+= ${DESTDIR:D${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} .endif .if empty(CXXFLAGS:M-nostdinc++) CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++} diff -r -u _/src/share/mk/bsd.own.mk src/share/mk/bsd.own.mk --- _/src/share/mk/bsd.own.mk 2012-02-28 18:53:47.000000000 +0900 +++ src/share/mk/bsd.own.mk 2012-05-11 00:00:00.000000000 +0900 @@ -216,7 +216,8 @@ SIZE= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-size STRIP= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-strip -CC= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-gcc +#CC= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-gcc +CC= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-gcc $(MINIX_FLAG) CPP= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-cpp CXX= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-c++ FC= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-g77 @@ -258,13 +259,15 @@ DBSYM= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-dbsym ELF2ECOFF= ${TOOLDIR}/bin/${_TOOL_PREFIX}mips-elf2ecoff INSTALL= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-install -LEX= ${TOOLDIR}/bin/${_TOOL_PREFIX}lex +#LEX= ${TOOLDIR}/bin/${_TOOL_PREFIX}lex +LEX= ${TOOLDIR}/bin/${_TOOL_PREFIX}flex LINT= CC=${CC:Q} ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-lint LORDER= NM=${NM:Q} MKTEMP=${TOOL_MKTEMP:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}lorder MKDEP= CC=${CC:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}mkdep PAXCTL= ${TOOLDIR}/bin/${_TOOL_PREFIX}paxctl TSORT= ${TOOLDIR}/bin/${_TOOL_PREFIX}tsort -q -YACC= ${TOOLDIR}/bin/${_TOOL_PREFIX}yacc +#YACC= ${TOOLDIR}/bin/${_TOOL_PREFIX}yacc +YACC= ${TOOLDIR}/bin/${_TOOL_PREFIX}byacc TOOL_AMIGAAOUT2BB= ${TOOLDIR}/bin/${_TOOL_PREFIX}amiga-aout2bb TOOL_AMIGAELF2BB= ${TOOLDIR}/bin/${_TOOL_PREFIX}amiga-elf2bb diff -r -u _/src/share/mk/bsd.prog.mk src/share/mk/bsd.prog.mk --- _/src/share/mk/bsd.prog.mk 2012-02-28 18:53:47.000000000 +0900 +++ src/share/mk/bsd.prog.mk 2012-05-11 00:00:00.000000000 +0900 @@ -28,7 +28,8 @@ ##### Default values .if empty(CPPFLAGS:M-nostdinc) -CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} +#CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} +CPPFLAGS+= ${DESTDIR:D${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} .endif .if empty(CXXFLAGS:M-nostdinc++) CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++} @@ -205,11 +206,17 @@ ${_P}: ${LIBCRT0} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} .if !commands(${_P}) ${_MKTARGET_LINK} +# ${_CCLINK.${_P}} \ +# ${DESTDIR:D-Wl,-nostdlib} \ +# ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} \ +# ${OBJS.${_P}} ${_LDADD.${_P}} \ +# ${DESTDIR:D-L${_GCC_LIBGCCDIR}} \ +# ${_PROGLDOPTS} ${_CCLINK.${_P}} \ ${DESTDIR:D-Wl,-nostdlib} \ ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} \ ${OBJS.${_P}} ${_LDADD.${_P}} \ - ${DESTDIR:D-L${_GCC_LIBGCCDIR}} \ + ${DESTDIR:D-L${DESTDIR}/usr/lib} \ ${_PROGLDOPTS} .if defined(PAXCTL_FLAGS.${_P}) ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} @@ -355,7 +362,7 @@ .include .include .include -.include +#.include .include diff -r -u _/src/share/mk/minix.gcc.mk src/share/mk/minix.gcc.mk --- _/src/share/mk/minix.gcc.mk 2012-02-28 18:53:47.000000000 +0900 +++ src/share/mk/minix.gcc.mk 2012-05-11 00:00:00.000000000 +0900 @@ -1,2 +1,3 @@ AFLAGS+=-D__ASSEMBLY__ -D_EM_WSIZE=4 -CFLAGS+= -fno-builtin -Wall -march=i586 -Wno-sign-compare +#CFLAGS+= -fno-builtin -Wall -march=i586 -Wno-sign-compare +CFLAGS+= -fno-builtin -Wall -Wno-sign-compare diff -r -u _/src/tools/Makefile src/tools/Makefile --- _/src/tools/Makefile 2012-02-28 18:53:47.000000000 +0900 +++ src/tools/Makefile 2012-05-11 00:00:00.000000000 +0900 @@ -50,8 +50,28 @@ all: services image -image: includes services - mkimage $(PROGRAMS) +#image: includes services +image: ../kernel/kernel $(PROGRAMS) +# mkimage $(PROGRAMS) + elf2aout -v -S 0 ../kernel/kernel kernel + elf2aout -v -S 16k ../servers/ds/ds ds + elf2aout -v -S 8125k ../servers/rs/rs rs + elf2aout -v -S 32k ../servers/pm/pm pm + elf2aout -v -S 32k ../servers/sched/sched sched + elf2aout -v -S 16k ../servers/vfs/vfs vfs + elf2aout -v -S 8k ../drivers/memory/memory memory + elf2aout -v -S 32k ../drivers/log/log log + elf2aout -v -S 16k ../drivers/tty/tty tty + elf2aout -v -S 128k ../servers/mfs/mfs mfs + elf2aout -v -S 128k ../servers/vm/vm vm + elf2aout -v -S 128k ../servers/pfs/pfs pfs + elf2aout -v -S 64k ../servers/init/init init + a=""; \ + for i in $>; do \ + a="$$a `basename $$i`"; \ + done; \ + mkimage -image $@ $$a; \ + rm $$a # rebuild the program or system libraries includes: