# HG changeset patch # User Pascal Bellard # Date 1540541393 -7200 # Node ID 049ced0bd387e8341e059917d1f79f063c278702 # Parent f5088c165f51d87fe0bfd6e7a3eb3ef3eda4b4aa perl: force arch diff -r f5088c165f51 -r 049ced0bd387 linld/stuff/src/CRTL.ASM --- a/linld/stuff/src/CRTL.ASM Tue Oct 23 08:25:49 2018 +0200 +++ b/linld/stuff/src/CRTL.ASM Fri Oct 26 10:09:53 2018 +0200 @@ -180,7 +180,7 @@ pop bx ; s push bx push ax - global puts:near ; puts(bx) +; global puts:near ; puts(bx) puts: call putsz mov bx,offset msg_crlf @@ -188,7 +188,6 @@ putcz: mov ah,2 int 21h - global putsz:near ; putsz(bx) putsz: mov dl,[bx] inc bx @@ -319,11 +318,11 @@ push bx push ax ;endif - global lseekset:near +; global lseekset:near lseekset: clc db 0B0h ; mov al,im - global rewind:near +; global rewind:near rewind: ; rewind(bx) stc mov ax,4200h @@ -436,7 +435,7 @@ global die:near ; die(bx) die: call puts - global _exit:near +; global _exit:near _exit: mov al,[_no_exit] cmp al,0 @@ -447,7 +446,7 @@ @@hang: mov bx, offset msg_hang call puts - global _abort:near +; global _abort:near _abort: cli @@stop: diff -r f5088c165f51 -r 049ced0bd387 linld/stuff/src/LOAD.CPP --- a/linld/stuff/src/LOAD.CPP Tue Oct 23 08:25:49 2018 +0200 +++ b/linld/stuff/src/LOAD.CPP Fri Oct 26 10:09:53 2018 +0200 @@ -112,8 +112,8 @@ const u32 HdrS = 'H' + ('d'<<8) + (u32('r')<<16) + (u32('S')<<24); u16 rm_size; -u8 pm_high; // @ = @rm_size + 2, see JUMP.ASM -u8* rm_buf; // @ = @rm_size + 3, see JUMP.ASM +static u8 pm_high; // @ = @rm_size + 2, see JUMP.ASM +static u8* rm_buf; // @ = @rm_size + 3, see JUMP.ASM u32 base_himem = _1m+_64k; // register value to launch the kernel real mode code diff -r f5088c165f51 -r 049ced0bd387 linld/stuff/src/MEMTOP.ASM --- a/linld/stuff/src/MEMTOP.ASM Tue Oct 23 08:25:49 2018 +0200 +++ b/linld/stuff/src/MEMTOP.ASM Fri Oct 26 10:09:53 2018 +0200 @@ -27,7 +27,6 @@ ;*************************************************************** ;u32 memtopz(); ;*************************************************************** - global _memtopz:near proc _memtopz near ;*************************************************************** ;u32 memtop_e801() diff -r f5088c165f51 -r 049ced0bd387 linld/stuff/src/TAZBOOT.CPP --- a/linld/stuff/src/TAZBOOT.CPP Tue Oct 23 08:25:49 2018 +0200 +++ b/linld/stuff/src/TAZBOOT.CPP Fri Oct 26 10:09:53 2018 +0200 @@ -62,8 +62,8 @@ return load_kernel(); } -char _cmdline[4096]; -const char *cmdline = (const char *) _cmdline+1; +static char buf_cmdline[4096]; +const char *cmdline = (const char *) buf_cmdline+1; static void bootiso(char **iso) { const char *init = " rdinit=/init.exe", *mode="menu"; @@ -101,18 +101,18 @@ c = x->filename[6]; } - strcatb(_cmdline," rw root=/dev/null autologin bootfrom="); - strcat(_cmdline,*iso); + strcatb(buf_cmdline," rw root=/dev/null autologin bootfrom="); + strcat(buf_cmdline,*iso); if (magic < 0x20630) init = ""; // Does not support multiple initramfs if (noauto) { char *s; - * (int *) _cmdline = 0; + * (int *) buf_cmdline = 0; iso++; while ((s = *++iso) != NULL) { if (strhead(s,"initrd=")) - strcatb(_cmdline,s); + strcatb(buf_cmdline,s); else if (isoopen(s+7) >= 0) addinitrd(); } @@ -139,11 +139,11 @@ if (((short *) &x->fileofs)[1] == 0) addinitrd(); else init=""; } - strcat(_cmdline,init); - strcatb(_cmdline,"mode="); - strcat(_cmdline,mode); - strcatb(_cmdline,"magic="); - strcat(_cmdline,ultoa(magic)); + strcat(buf_cmdline,init); + strcatb(buf_cmdline,"mode="); + strcat(buf_cmdline,mode); + strcatb(buf_cmdline,"magic="); + strcat(buf_cmdline,ultoa(magic)); } load_initrds(); if (isknoppix) { @@ -241,7 +241,7 @@ s += 4; topmem = strtol(s); } - strcatb(_cmdline,*argv); + strcatb(buf_cmdline,*argv); }} } if (iso && isoreset(iso) >= 0) { diff -r f5088c165f51 -r 049ced0bd387 linld/stuff/src/VCPI.ASM --- a/linld/stuff/src/VCPI.ASM Tue Oct 23 08:25:49 2018 +0200 +++ b/linld/stuff/src/VCPI.ASM Fri Oct 26 10:09:53 2018 +0200 @@ -132,15 +132,13 @@ ;****** Return: AX=>first unused byte in pagebuf ;****** Uses: Flags ;*************************************************************** - global _prepare_vcpi:near global prepare_vcpi:near - proc _prepare_vcpi near + proc prepare_vcpi near ;pop ax ;pop bx ;pgbuf ;push bx ;push ax -prepare_vcpi: ;Calculate pagedir/page0 addrs, initialize cr3 and pagedir[0] xor eax,eax @@ -183,7 +181,7 @@ mov [_heap_top],ax ;ret - endp _prepare_vcpi + endp prepare_vcpi ;*************************************************************** @@ -192,7 +190,7 @@ ;****** NZ - otherwise (it's bad) ;****** Uses: Flags ;*************************************************************** - global _get_vcpi_interface:near + ;global _get_vcpi_interface:near proc _get_vcpi_interface near ;push si di diff -r f5088c165f51 -r 049ced0bd387 linld/stuff/src/XMM.ASM --- a/linld/stuff/src/XMM.ASM Tue Oct 23 08:25:49 2018 +0200 +++ b/linld/stuff/src/XMM.ASM Fri Oct 26 10:09:53 2018 +0200 @@ -16,7 +16,6 @@ segment _BSS byte public use16 'BSS' - global xmm_handler:dword xmm_handler dd ? ends _BSS @@ -40,7 +39,6 @@ ;Call xmm driver addr or 0 if no xmm ;void xmm_driver(ah) ;*************************************************************** - global xmm_driver:near proc xmm_driver near push si @@ -100,6 +98,7 @@ global _xmm_alloc:near proc _xmm_alloc near + ret ; TO BE FIXED pop ax pop bx push bx @@ -108,6 +107,8 @@ mov edx,[(image_himem bx).size] ; m->size ;dec edx shr edx,10 ; to Kb + inc edx + mov ah,89h ;allocate blk of EDX kilobytes else ;mov ax,-1 ;cwd @@ -118,10 +119,10 @@ mov cl,16-10 extrn N_LXLSH@:near call N_LXLSH@ + inc dx + mov ah,9h ;allocate blk of DX kilobytes (<64Mb) endif - inc dx push bx - mov ah,09h ;allocate blk of DX kilobytes call xmm_driver ; jnz @@goerr ;now: dx=handle of the blk diff -r f5088c165f51 -r 049ced0bd387 linld/stuff/src/_BEG.ASM --- a/linld/stuff/src/_BEG.ASM Tue Oct 23 08:25:49 2018 +0200 +++ b/linld/stuff/src/_BEG.ASM Fri Oct 26 10:09:53 2018 +0200 @@ -237,7 +237,9 @@ call near open jc argend pop bx ; trash argc, argv >> 1Kb ! + ifdef EXTRA global read_cmdline:near + endif read_cmdline: push di push ax diff -r f5088c165f51 -r 049ced0bd387 perl/receipt --- a/perl/receipt Tue Oct 23 08:25:49 2018 +0200 +++ b/perl/receipt Fri Oct 26 10:09:53 2018 +0200 @@ -17,9 +17,15 @@ cook_tmp_toolchain() { cd $src - grep -rl 'uname -m' . | xargs sed -i 's|uname -m|echo i686|' { sh Configure -des -Dprefix=/tools \ - -Dstatic_ext='Data/Dumper Fcntl IO' && + -Darchname="$ARCH-linux" \ + -Dmyarchname="$ARCH-linux" \ + -Dsitearch="/usr/lib/perl5/site_perl/$VERSION/$ARCH-linux" \ + -Dsitearchexp="/usr/lib/perl5/site_perl/$VERSION/$ARCH-linux" \ + -Darchlib="/usr/lib/perl5/$VERSION/$ARCH-linux" \ + -Darchlibexp="/usr/lib/perl5/$VERSION/$ARCH-linux" \ + -Dinstallarchlib="/usr/lib/perl5/$VERSION/$ARCH-linux" \ + -Dstatic_ext='Data/Dumper Fcntl IO' # Only few tools are needed in the tmp toolchain. make perl utilities ext/Errno/pm_to_blib @@ -34,8 +40,14 @@ # compile_rules() { - grep -rl 'uname -m' . | xargs sed -i 's|uname -m|echo i686|' - ./configure.gnu --prefix=/usr && + ./configure.gnu --prefix=/usr \ + -Darchname="$ARCH-linux" \ + -Dmyarchname="$ARCH-linux" \ + -Dsitearch="/usr/lib/perl5/site_perl/$VERSION/$ARCH-linux" \ + -Dsitearchexp="/usr/lib/perl5/site_perl/$VERSION/$ARCH-linux" \ + -Darchlib="/usr/lib/perl5/$VERSION/$ARCH-linux" \ + -Darchlibexp="/usr/lib/perl5/$VERSION/$ARCH-linux" \ + -Dinstallarchlib="/usr/lib/perl5/$VERSION/$ARCH-linux" && make && make install