Index: branches/meklort/i386/boot2/modules.c =================================================================== --- branches/meklort/i386/boot2/modules.c (revision 709) +++ branches/meklort/i386/boot2/modules.c (revision 710) @@ -57,6 +57,7 @@ { void (*module_start)(void) = NULL; char* module_data = symbols_module_start + BOOT2_ADDR; + // Intialize module system if(symbols_module_start == (void*)0xFFFFFFFF) { @@ -371,7 +372,7 @@ } else { - printf("Invalid mach magic\n"); + printf("Invalid mach magic 0x%X\n", ((struct mach_header*)binary)->magic); getc(); return NULL; } Index: branches/meklort/i386/boot2/Makefile =================================================================== --- branches/meklort/i386/boot2/Makefile (revision 709) +++ branches/meklort/i386/boot2/Makefile (revision 710) @@ -66,9 +66,9 @@ # SYMBOLS_MODULE = Symbols.dylib SYMBOL_START= _symbols_module_start -SYMBOL_ADDR = $(shell printf "%d" 0x`nm -s __DATA __data $(SYMROOT)/boot_embeded.sys | grep " $(SYMBOL_START)$$" | cut -f 1 -d " "`) -DATA_OFFSET = $(shell otool -l $(SYMROOT)/boot_embeded.sys | grep __data -A 4 | grep __DATA -A 3 | tail -n 1 | cut -f 6 -d " ") -DATA_ADDR = $(shell printf "%d" `otool -l $(SYMROOT)/boot_embeded.sys | grep __data -A 4 | grep __DATA -A 3 | head -n 2 | tail -n 1 | cut -f 8 -d " "`) +SYMBOL_ADDR = $(shell printf "%d" 0x`nm -s __DATA __data $(SYMROOT)/boot.sys | grep " $(SYMBOL_START)$$" | cut -f 1 -d " "`) +DATA_OFFSET = $(shell otool -l $(SYMROOT)/boot.sys | grep __data -A 4 | grep __DATA -A 3 | tail -n 1 | cut -f 6 -d " ") +DATA_ADDR = $(shell printf "%d" `otool -l $(SYMROOT)/boot.sys | grep __data -A 4 | grep __DATA -A 3 | head -n 2 | tail -n 1 | cut -f 8 -d " "`) PATCH_ADDR = $(shell echo ${SYMBOL_ADDR}-${DATA_ADDR}+${DATA_OFFSET} | bc) @@ -78,29 +78,36 @@ boot: embedded.h machOconv $(OBJS) $(LIBDEP) @echo "\t[LD] boot.sys" - @$(LD) -static -Wl,-preload -Wl,-segaddr,__INIT,$(BOOT2ADDR) \ + @$(LD) -static -Wl,-preload -Wl,-segaddr,__INIT,$(BOOT2ADDR) \ -nostdlib -arch i386 -Wl,-segalign,20 \ -o $(SYMROOT)/boot.sys $(filter %.o,$^) $(LIBS) -lcc_kext + + @cp $(SYMROOT)/boot.sys $(SYMROOT)/boot2.sys + @make Symbols.dylib + @${RM} $(SYMROOT)/boot.sys - @echo "\t[LD] boot_embeded.sys" + @echo "\t[LD] boot.sys" @$(LD) -static -Wl,-preload -Wl,-segaddr,__INIT,$(BOOT2ADDR) \ -nostdlib -arch i386 -Wl,-segalign,20 \ -Wl,-sectcreate,__DATA,__Symbols,$(SYMROOT)/Symbols.dylib \ - -o $(SYMROOT)/boot_embeded.sys $(filter %.o,$^) $(LIBS) -lcc_kext + -o $(SYMROOT)/boot.sys $(filter %.o,$^) $(LIBS) -lcc_kext + + @ld -arch i386 \ -undefined dynamic_lookup \ -dylib -read_only_relocs suppress \ -S -x -Z -dead_strip_dylibs \ -no_uuid \ - -final_output Symbols.dylib \ + -final_output Symbols \ $(filter %.o,$^) $(LIBS) \ -o $(OBJROOT)/Symbols_LINKER_ONLY.dylib @make embed_symbols # this is done in a sub process after boot.sys exists so the strings are populated correctly + @${RM} $(SYMROOT)/boot2.sys @${RM} $(SYMROOT)/${SYMBOLS_MODULE} @@ -117,12 +124,12 @@ embed_symbols: machOconv @echo ================= Embedding Symbols.dylib ================= @echo "\t[MACHOCONV] boot" - @$(SYMROOT)/machOconv $(SYMROOT)/boot.sys $(SYMROOT)/boot &> /dev/null + @$(SYMROOT)/machOconv $(SYMROOT)/boot2.sys $(SYMROOT)/boot &> /dev/null @echo ******* Patching at $(PATCH_ADDR) ****** - @stat -f%z $(SYMROOT)/boot | perl -ane "print pack('V',@F[0]);" | dd conv=notrunc of=${SYMROOT}/boot_embeded.sys bs=1 count=4 seek=$(PATCH_ADDR) &> /dev/null - @echo "\t[MACHOCONV] boot_embeded" - @$(SYMROOT)/machOconv $(SYMROOT)/boot_embeded.sys $(SYMROOT)/boot + @stat -f%z $(SYMROOT)/boot | perl -ane "print pack('V',@F[0]);" | dd conv=notrunc of=${SYMROOT}/boot.sys bs=1 count=4 seek=$(PATCH_ADDR) &> /dev/null + @echo "\t[MACHOCONV] boot" + @$(SYMROOT)/machOconv $(SYMROOT)/boot.sys $(SYMROOT)/boot prompt.o: vers.h @@ -153,6 +160,7 @@ -final_output Symbols \ -exported_symbols_list ${OBJROOT}/Symbols.save \ ${OBJROOT}/Symbols.o \ + -macosx_version_min 10.6 \ -o $(SYMROOT)/${SYMBOLS_MODULE} @##size $(SYMROOT)/${SYMBOLS_MODULE} Index: branches/meklort/i386/modules/MakeInc.dir =================================================================== --- branches/meklort/i386/modules/MakeInc.dir (revision 709) +++ branches/meklort/i386/modules/MakeInc.dir (revision 710) @@ -35,10 +35,11 @@ -final_output $(MODULE_NAME) \ -L$(OBJROOT)/ \ -L$(OBJROOT)/../ \ - -L$(SYMROOT)/ \ + -L$(SYMROOT)/ \ $(OBJROOT)/*.o \ - -weak_library $(OBJROOT)/../../boot2/Symbols_LINKER_ONLY.dylib \ + -weak_library $(OBJROOT)/../../boot2/Symbols_LINKER_ONLY.dylib \ -weak_library $(SYMROOT)/*.dylib \ + -macosx_version_min 10.6 \ -o $(SYMROOT)/$(MODULE_NAME).dylib @cp -rf include/* ../module_includes/ &> /dev/null || true @@ -62,8 +63,10 @@ -L$(OBJROOT)/../ \ -L$(SYMROOT)/ \ $(OBJROOT)/*.o \ - -weak_library $(OBJROOT)/../../boot2/Symbols_LINKER_ONLY.dylib \ - -o $(SYMROOT)/$(MODULE_NAME).dylib + -weak_library $(OBJROOT)/../../boot2/Symbols_LINKER_ONLY.dylib \ + -macosx_version_min 10.6 \ + -o $(SYMROOT)/$(MODULE_NAME).dylib + @cp -rf include/* ../module_includes/ &> /dev/null || true endif Index: branches/meklort/i386/modules/Resolution/Resolution.c =================================================================== --- branches/meklort/i386/modules/Resolution/Resolution.c (revision 709) +++ branches/meklort/i386/modules/Resolution/Resolution.c (revision 710) @@ -9,6 +9,6 @@ void Resolution_start() { - patchVideoBios(); + //patchVideoBios(); }