# HG changeset patch # User Pascal Bellard # Date 1573206472 -3600 # Node ID a0dccc5d133dc5dfbd74419ccf22a847b5101f0a # Parent 8a056aec03a0fe40eeadb93e08ddf36f68e75bd4 linld: clear heap in moverm diff -r 8a056aec03a0 -r a0dccc5d133d c-client/receipt --- a/c-client/receipt Fri Nov 08 10:09:23 2019 +0100 +++ b/c-client/receipt Fri Nov 08 10:47:52 2019 +0100 @@ -6,7 +6,7 @@ SHORT_DESC="mail store formats support." MAINTAINER="pascal.bellard@slitaz.org" LICENSE="Apache" -WEB_SITE="http://www.washington.edu/imap/" +WEB_SITE="https://www.washington.edu/imap/" SOURCE="imap" TARBALL="$SOURCE-$VERSION.tar.gz" WGET_URL="ftp://ftp.cac.washington.edu/mail/$TARBALL" diff -r 8a056aec03a0 -r a0dccc5d133d fastthread/receipt --- a/fastthread/receipt Fri Nov 08 10:09:23 2019 +0100 +++ b/fastthread/receipt Fri Nov 08 10:47:52 2019 +0100 @@ -17,7 +17,7 @@ # Rules to configure and make the package. compile_rules() { - local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" + local _gemdir="$(ruby -rrubygems -e'puts Gem.default_dir')" gem install --ignore-dependencies -i "$DESTDIR/$_gemdir" $SOURCES_REPOSITORY/$TARBALL } diff -r 8a056aec03a0 -r a0dccc5d133d file-tail/receipt --- a/file-tail/receipt Fri Nov 08 10:09:23 2019 +0100 +++ b/file-tail/receipt Fri Nov 08 10:47:52 2019 +0100 @@ -18,7 +18,7 @@ # Rules to configure and make the package. compile_rules() { - local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" + local _gemdir="$(ruby -rrubygems -e'puts Gem.default_dir')" gem install \ --ignore-dependencies \ -i "$DESTDIR/$_gemdir" \ diff -r 8a056aec03a0 -r a0dccc5d133d larch/receipt --- a/larch/receipt Fri Nov 08 10:09:23 2019 +0100 +++ b/larch/receipt Fri Nov 08 10:47:52 2019 +0100 @@ -16,7 +16,7 @@ # Rules to configure and make the package. compile_rules() { - local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" + local _gemdir="$(ruby -rrubygems -e'puts Gem.default_dir')" gem install --ignore-dependencies -i "$DESTDIR/$_gemdir" larch } diff -r 8a056aec03a0 -r a0dccc5d133d linld/stuff/src/A20.ASM --- a/linld/stuff/src/A20.ASM Fri Nov 08 10:09:23 2019 +0100 +++ b/linld/stuff/src/A20.ASM Fri Nov 08 10:47:52 2019 +0100 @@ -124,8 +124,10 @@ mov cx,[bx-5] ; size mov si,[bx-2] ; data xor di,di - rep - movsb +@@move_clear: + movsb + mov [byte si-1],0 + loop @@move_clear ;push ds ;pop es ;pop di si diff -r 8a056aec03a0 -r a0dccc5d133d linld/stuff/src/COMMON.H --- a/linld/stuff/src/COMMON.H Fri Nov 08 10:09:23 2019 +0100 +++ b/linld/stuff/src/COMMON.H Fri Nov 08 10:47:52 2019 +0100 @@ -72,6 +72,7 @@ #define prev(p) --p #endif extern char vcpi; +extern char version_string[]; extern const char* kernel_name; extern const char* initrd_name; extern const char* cmdline; @@ -93,6 +94,6 @@ void load_image(struct image_himem *m); extern _fastcall void open_image(struct image_himem *m, const char *name); extern _fastcall int read_image(struct image_himem *m); -char* load_kernel(); +void load_kernel(); void load_initrd(); extern "C" void boot_kernel(); diff -r 8a056aec03a0 -r a0dccc5d133d linld/stuff/src/CRTL.ASM --- a/linld/stuff/src/CRTL.ASM Fri Nov 08 10:09:23 2019 +0100 +++ b/linld/stuff/src/CRTL.ASM Fri Nov 08 10:47:52 2019 +0100 @@ -478,15 +478,8 @@ include "himem.inc" ;*************************************************************** -;_fastcall char* strdup(bx:const char* a); ;_fastcall char* malloc_or_die(ax:unsigned size); ;*************************************************************** - global @strdup$qpxzc:near -@strdup$qpxzc: - mov ax,[_heap_top] - xchg ax,bx - call @strcpy$qpxzct1 ; bx = strcpy(bx, ax) end +1 - xchg ax,bx xchg_heap_top: xchg ax,[_heap_top] ret diff -r 8a056aec03a0 -r a0dccc5d133d linld/stuff/src/CRTL.H --- a/linld/stuff/src/CRTL.H Fri Nov 08 10:09:23 2019 +0100 +++ b/linld/stuff/src/CRTL.H Fri Nov 08 10:47:52 2019 +0100 @@ -22,7 +22,6 @@ void parse_cmdline(); extern _fastcall void strcatb(const char* a,const char* b); extern _fastcall void strcpy(const char* a,const char* b); -extern _fastcall int strdup(const char* a); #ifdef USE_ARGSTR extern _fastcall int argstr(const char *s, const char keywords[], const char **var); extern _fastcall int argnum(char *s, const char keywords[], unsigned long *var); diff -r 8a056aec03a0 -r a0dccc5d133d linld/stuff/src/LINLD.CPP --- a/linld/stuff/src/LINLD.CPP Fri Nov 08 10:09:23 2019 +0100 +++ b/linld/stuff/src/LINLD.CPP Fri Nov 08 10:47:52 2019 +0100 @@ -75,7 +75,8 @@ boot: puts(*clp); set_cmdline(*clp); - puts(load_kernel()); + load_kernel(); + puts(version_string); load_initrd(); boot_kernel(); } @@ -88,7 +89,8 @@ argv++; s=*argv; if (!s) { - puts(load_kernel()); + load_kernel(); + puts(version_string); load_initrd(); boot_kernel(); } diff -r 8a056aec03a0 -r a0dccc5d133d linld/stuff/src/LOAD.CPP --- a/linld/stuff/src/LOAD.CPP Fri Nov 08 10:09:23 2019 +0100 +++ b/linld/stuff/src/LOAD.CPP Fri Nov 08 10:47:52 2019 +0100 @@ -124,8 +124,7 @@ struct image_himem imgs[2]; static const char kernel_file_error[] = "Can't use kernel file"; -static char *version_string=""; -char* load_kernel() { +void load_kernel() { struct image_himem *m = ± #define _rm_buf(m) (((u8**)(m))[-1]) @@ -158,7 +157,6 @@ if((kernelparams->setup_sects)>=(_32k/512) || // 0th sector not counted kernelparams->boot_flag != 0xAA55) die("Not a kernel"); - heap_top += // Hack for VCPI. Need fix. _rm_size=0x200*(kernelparams->setup_sects+1); m->size -= _rm_size; m->chunk_size -= _rm_size; @@ -185,7 +183,7 @@ hook_int15_88(); // break _ES } if (kernelparams->kernel_version) - version_string = (char *) strdup((char *) first1k+kernelparams->kernel_version+0x200); + strcpy(version_string,(char *) first1k+kernelparams->kernel_version+0x200); kernelparams->type_of_loader = 0xff; // kernel do not know us (yet :-) if(kernelparams->version >= 0x201) { // * offset limit of the setup heap @@ -223,7 +221,6 @@ } load_image(m); - return version_string; } // Read initrd if needed diff -r 8a056aec03a0 -r a0dccc5d133d linld/stuff/src/TAZBOOT.CPP --- a/linld/stuff/src/TAZBOOT.CPP Fri Nov 08 10:09:23 2019 +0100 +++ b/linld/stuff/src/TAZBOOT.CPP Fri Nov 08 10:47:52 2019 +0100 @@ -58,7 +58,8 @@ struct image_himem *m = ± m->chunk_size = m->size = isofilesize4round(); m->fd = isofd; - return load_kernel(); + load_kernel(); + return version_string; } static char buf_cmdline[4096]; diff -r 8a056aec03a0 -r a0dccc5d133d linld/stuff/src/_BEG.ASM --- a/linld/stuff/src/_BEG.ASM Fri Nov 08 10:09:23 2019 +0100 +++ b/linld/stuff/src/_BEG.ASM Fri Nov 08 10:47:52 2019 +0100 @@ -32,6 +32,8 @@ global _bss_start:byte label _bss_start byte + global _version_string:byte + label _version_string byte db STACK_SIZE-2 dup(?) stktop dw ? global _cpu_features:dword @@ -52,7 +54,7 @@ ; clear bss ;*************************************************************** mov sp,offset stktop - mov si,sp + mov si,offset _version_string mov bx, 0F000h ; cld ; cli & empty string clearbss: mov [si],bl ; clear bss + heap + sp diff -r 8a056aec03a0 -r a0dccc5d133d linld/stuff/src/pipehole.awk --- a/linld/stuff/src/pipehole.awk Fri Nov 08 10:09:23 2019 +0100 +++ b/linld/stuff/src/pipehole.awk Fri Nov 08 10:47:52 2019 +0100 @@ -102,10 +102,7 @@ if (/jb/) isload=12 sub(/jb/,"ja") } - if (/i,offset/) split($2,sidi,",") - if (sidi[1] == "si") sidi[2]="di" - else sidi[2]="si" - sub(/DGROUP:_imgs\+65534/,"[" sidi[1] "-2]") + sub(/_imgs\+65534/,"_imgs-2") if (/m, _rm_size/) isload=10 if (isload == 10) { # LOAD.LST if (/^ je /) next @@ -127,13 +124,13 @@ if (/cmd_line_ptr =/ && is386 == 0) isload=7 if (isload == 7) { # LOAD.LST if (/add/ || /xor/ || /extrn/ || /N_LXLSH@/ || /cl,4/) next - if (/enable A20 if needed/) { - print " mov word ptr [bx+" sidi[2] "],8000h" - isload=0 - } + if (/enable A20 if needed/) { print nextinst; isload=0 } if (/,ax/) $0=" mov bx,55" if (/i-463/) $0=" mov bx,-463" - if (/i-465/) { sub(/465/,"2"); sub(/\[/,"[bx+"); } + if (/i-465/) { + sub(/465/,"2"); sub(/\[/,"[bx+") + nextinst=$0; sub(/-2\],-23745/,"],8000h",nextinst) + } if (/,dx/) { print " mov cl,12" print " shr ax,cl" diff -r 8a056aec03a0 -r a0dccc5d133d rack/receipt --- a/rack/receipt Fri Nov 08 10:09:23 2019 +0100 +++ b/rack/receipt Fri Nov 08 10:47:52 2019 +0100 @@ -17,7 +17,7 @@ # Rules to configure and make the package. compile_rules() { - local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" + local _gemdir="$(ruby -rrubygems -e'puts Gem.default_dir')" gem install --ignore-dependencies -i "$DESTDIR/$_gemdir" $SOURCES_REPOSITORY/$TARBALL } diff -r 8a056aec03a0 -r a0dccc5d133d rails/receipt --- a/rails/receipt Fri Nov 08 10:09:23 2019 +0100 +++ b/rails/receipt Fri Nov 08 10:47:52 2019 +0100 @@ -17,7 +17,7 @@ # Rules to configure and make the package. compile_rules() { - local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" + local _gemdir="$(ruby -rrubygems -e'puts Gem.default_dir')" gem install --ignore-dependencies -i "$DESTDIR/$_gemdir" $SOURCES_REPOSITORY/$TARBALL } diff -r 8a056aec03a0 -r a0dccc5d133d rake/receipt --- a/rake/receipt Fri Nov 08 10:09:23 2019 +0100 +++ b/rake/receipt Fri Nov 08 10:47:52 2019 +0100 @@ -17,7 +17,7 @@ # Rules to configure and make the package. compile_rules() { - local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" + local _gemdir="$(ruby -rrubygems -e'puts Gem.default_dir')" gem install --ignore-dependencies -i "$DESTDIR/$_gemdir" $SOURCES_REPOSITORY/$TARBALL } diff -r 8a056aec03a0 -r a0dccc5d133d spruz/receipt --- a/spruz/receipt Fri Nov 08 10:09:23 2019 +0100 +++ b/spruz/receipt Fri Nov 08 10:47:52 2019 +0100 @@ -17,7 +17,7 @@ # Rules to configure and make the package. compile_rules() { - local _gemdir="$(ruby -rubygems -e'puts Gem.default_dir')" + local _gemdir="$(ruby -rrubygems -e'puts Gem.default_dir')" gem install --ignore-dependencies -i "$DESTDIR/$_gemdir" $SOURCES_REPOSITORY/$TARBALL }