From 10246cf5c1aabc9d8d148286496e6b2f5781fd91 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Wed, 23 Nov 2011 13:30:11 +0800 Subject: [PATCH] Modules/InitRD - Fixed to not convert files into hex --- Modules/Filesystems/InitRD/GenerateInitRD.php | 29 ++++++++++++++++--- Modules/Filesystems/InitRD/Makefile | 3 +- Modules/Makefile.tpl | 4 +-- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/Modules/Filesystems/InitRD/GenerateInitRD.php b/Modules/Filesystems/InitRD/GenerateInitRD.php index 8757f0e8..af967d5a 100644 --- a/Modules/Filesystems/InitRD/GenerateInitRD.php +++ b/Modules/Filesystems/InitRD/GenerateInitRD.php @@ -15,7 +15,8 @@ $ARCH = getenv("ARCH"); $gInputFile = $argv[1]; $gOutputFile = $argv[2]; -$gDepFile = ($argc > 3 ? $argv[3] : false); +$gOutputLDOptsFile = $argv[3]; +$gDepFile = ($argc > 4 ? $argv[4] : false); $gDependencies = array(); @@ -66,11 +67,13 @@ function hd8($fp) } $inode = 0; +$gSymFiles = array(); function ProcessFolder($prefix, $items) { global $gOutput, $gDependencies; global $ACESSDIR, $ARCH; global $inode; + global $gSymFiles; foreach($items as $i=>$item) { $inode ++; @@ -119,10 +122,12 @@ EOF; exit(1); } $size = filesize($path); - + +/* + $_sym = $prefix."_".$i."_data"; $fp = fopen($path, "rb"); - $gOutput .= "Uint8 {$prefix}_{$i}_data[] = {\n"; + $gOutput .= "Uint8 $_sym[] = {\n"; for( $j = 0; $j + 16 < $size; $j += 16 ) { $gOutput .= "\t"; $gOutput .= hd8($fp).",".hd8($fp).","; @@ -141,6 +146,13 @@ EOF; } fclose($fp); $gOutput .= "\n};\n"; +*/ + +//* + $_sym = "_binary_".str_replace(array("/","-","."), "_", $path)."_start"; + $gOutput .= "extern Uint8 {$_sym}[];"; + $gSymFiles[] = $path; +//*/ $gOutput .= <<$file) +{ + fputs($fp, "$file\n"); +// fputs($fp, "--defsym $sym=_binary_".$sym_filename."_start\n"); +} +fclose($fp); if($gDepFile !== false) { diff --git a/Modules/Filesystems/InitRD/Makefile b/Modules/Filesystems/InitRD/Makefile index 205ad7b1..0c19c0f7 100644 --- a/Modules/Filesystems/InitRD/Makefile +++ b/Modules/Filesystems/InitRD/Makefile @@ -5,11 +5,12 @@ OBJ = main.o files.$(ARCH).o EXTRA = files.c NAME = InitRD EXTRA = files.$(ARCH).c files.$(ARCH).c.dep +LDFLAGS += @files.$(ARCH).c.ldopts -include ../Makefile.tpl files.$(ARCH).c: GenerateInitRD.php files.lst - ARCH=$(ARCH) ACESSDIR=$(ACESSDIR) php GenerateInitRD.php files.lst $@ $@.dep + ARCH=$(ARCH) ACESSDIR=$(ACESSDIR) php GenerateInitRD.php files.lst $@ $@.ldopts $@.dep -include files.$(ARCH).c.dep diff --git a/Modules/Makefile.tpl b/Modules/Makefile.tpl index 04a0c041..53a059f0 100644 --- a/Modules/Makefile.tpl +++ b/Modules/Makefile.tpl @@ -58,12 +58,12 @@ endif ifneq ($(BUILDTYPE),static) $(BIN): %.kmd.$(ARCH): $(OBJ) @echo --- $(LD) -o $@ - @$(LD) --allow-shlib-undefined -shared -nostdlib -o $@ $(OBJ) -defsym=DriverInfo=_DriverInfo_$(FULLNAME) + @$(LD) --allow-shlib-undefined -shared -nostdlib -o $@ $(OBJ) -defsym=DriverInfo=_DriverInfo_$(FULLNAME) $(LDFLAGS) @$(DISASM) $(BIN) > $(BIN).dsm else $(BIN): %.xo.$(ARCH): $(OBJ) @echo --- $(LD) -o $@ - @$(LD) -r -o $@ $(OBJ) + @$(LD) -r -o $@ $(OBJ) $(LDFLAGS) endif obj-$(_SUFFIX)/%.o: %.c Makefile $(CFGFILES) -- 2.20.1