Browse Source

HostPackedFiles implemented; DevPacked added; loader simplified

Alexander Shiryaev 12 years ago
parent
commit
4d118bc168

BIN
new/Dev/Docu/Packer.odc


BIN
new/Dev/Mod/Packer.odc


BIN
new/_LinuxOpenBSD_/Host/Mod/PackedFiles.odc


+ 0 - 48
new/_LinuxOpenBSD_/Lin/Rsrc/loader/BlackBox-dl.c

@@ -1,48 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-
-int main (int argc, char *argv[])
-{
-	void * h;
-	/*
-	void * h1;
-	void (*SetKernelBaseStack) (int);
-	void (*Init) (void);
-	*/
-	int res;
-
-	h = dlopen("libBB.so", RTLD_LAZY | RTLD_GLOBAL);
-	if (h != NULL) {
-		/*
-		h1 = dlsym(h, "SetKernelBaseStack");
-		if (h1 != NULL) {
-			*(void **) (&SetKernelBaseStack) = h1;
-			h1 = dlsym(h, "Init");
-			if (h1 != NULL) {
-				*(void **) (&Init) = h1;
-
-				asm ("movl %%esp, %[res]" : [res] "=m" (res) );
-				SetKernelBaseStack(res - 8);
-
-				printf("before Init()\n");
-				Init();
-				printf("after Init()\n");
-
-				res = 0;
-			} else {
-				perror(dlerror());
-				res = 3;
-			}
-		} else {
-			perror(dlerror());
-			res = 2;
-		}
-		*/
-		res = 0;
-	} else {
-		perror(dlerror());
-		res = 1;
-	}
-
-	return res;
-}

+ 0 - 4
new/_LinuxOpenBSD_/Lin/Rsrc/loader/BlackBox.c

@@ -1,4 +0,0 @@
-int main (int argc, char *argv[])
-{
-	return 0;
-}

+ 0 - 24
new/_LinuxOpenBSD_/Lin/Rsrc/loader/BlackBox1.c

@@ -1,24 +0,0 @@
-// #include <stdio.h>
-
-// extern void SetKernelBaseStack (int);
-extern void Init (void);
-
-int main (int argc, char *argv[])
-{
-	// int res;
-
-	// printf("START\n");
-
-	/* 2012.09.02: This is from oberoncore.ru
-		2012.09.05: not required in case of static linking of shared library (-lBB) */
-	// asm ("movl %%esp, %[res]" : [res] "=m" (res) );
-	// SetKernelBaseStack(res - 8);
-	// printf("SetKernelBaseStack(0x%02x): done\n", res - 8);
-	// <return adr> <caller ebp> -> base stack = locals of main proc
-
-	Init();
-
-	// printf("END\n");
-
-	return 0;
-}

+ 0 - 18
new/_LinuxOpenBSD_/Lin/Rsrc/loader/dev0.c

@@ -1,18 +0,0 @@
-#include <dlfcn.h>
-#include <stdio.h>
-
-int main (int argc, char *argv[])
-{
-	void * h;
-	int res;
-
-	h = dlopen("libBB0.so", RTLD_LAZY | RTLD_GLOBAL);
-	if (h != NULL) {
-		res = 0;
-	} else {
-		perror(dlerror());
-		res = 1;
-	}
-
-	return res;
-}

+ 23 - 0
new/_LinuxOpenBSD_/Lin/Rsrc/loader/loader.c

@@ -0,0 +1,23 @@
+#include <dlfcn.h>
+#include <stdio.h>
+
+int main (int argc, char *argv[])
+{
+	void * h;
+	int res;
+
+	if (argc == 2) {
+		h = dlopen(argv[1], RTLD_LAZY | RTLD_GLOBAL);
+		if (h != NULL) {
+			res = 0;
+		} else {
+			perror(dlerror());
+			res = 2;
+		}
+	} else {
+		fprintf(stderr, "usage: %s file.so\n", argv[0]);
+		res = 1;
+	}
+
+	return res;
+}

BIN
new/_LinuxOpenBSD_GUI/Port.odc


BIN
new/_LinuxOpenBSD_GUI/TODO.odc


+ 0 - 1
new/_Linux_/BlackBox

@@ -1 +0,0 @@
-Lin/Rsrc/loader/BlackBox

BIN
new/_Linux_/Lin/Rsrc/loader/BlackBox


+ 3 - 9
new/_Linux_/Lin/Rsrc/loader/Makefile

@@ -4,18 +4,12 @@
 # ${.ALLSRC}    $^
 # ${.IMPSRC}    $<
 
-all: dev0 BlackBox
+all: loader
 
 CFLAGS += -Wall -O0 -g -m32
 
-#BlackBox: BlackBox.c
-#	${CC} ${CFLAGS} -o $@ $^ -L. -lBB
-
-BlackBox: BlackBox-dl.c
-	${CC} ${CFLAGS} -o $@ $^ -ldl
-
-dev0: dev0.c
+loader: loader.c
 	${CC} ${CFLAGS} -o $@ $^ -ldl
 
 clean:
-	rm -f dev0 BlackBox
+	rm -f loader

BIN
new/_Linux_/Lin/Rsrc/loader/dev0


+ 0 - 1
new/_Linux_/Lin/Rsrc/loader/libBB.so

@@ -1 +0,0 @@
-../../../libBB.so

+ 0 - 1
new/_Linux_/Lin/Rsrc/loader/libBB0.so

@@ -1 +0,0 @@
-../../../libBB0.so

BIN
new/_Linux_/Lin/Rsrc/loader/loader


+ 0 - 1
new/_Linux_/dev0

@@ -1 +0,0 @@
-Lin/Rsrc/loader/dev0

+ 1 - 0
new/_Linux_/loader

@@ -0,0 +1 @@
+Lin/Rsrc/loader/loader

+ 0 - 1
new/_OpenBSD_/BlackBox

@@ -1 +0,0 @@
-Lin/Rsrc/loader/BlackBox

BIN
new/_OpenBSD_/Lin/Rsrc/loader/BlackBox


+ 3 - 19
new/_OpenBSD_/Lin/Rsrc/loader/Makefile

@@ -6,28 +6,12 @@
 
 CFLAGS += -Wall -O0 -g
 
-all: libdlobsdwrap.so dev0 BlackBox
-
-# libdlobsdwrap.so: universal method of correct access to dl* functions
-#	in case of dynamic loading of libBB*.so "ld.so" in LibDl may be used instead of "libc.so", but not in case of static linking
-#	wrapper method is universal
+all: loader
 
 # -pthread required to dlopen libraries that depends on pthread
 
-#BlackBox: BlackBox.c
-#	${CC} ${CFLAGS} -o ${.TARGET} ${.ALLSRC} -L. -lBB -pthread
-
-BlackBox: BlackBox-dl.c
+loader: loader.c
 	${CC} ${CFLAGS} -o ${.TARGET} ${.ALLSRC} -pthread
 
-#dev0: BlackBox1.c
-#	${CC} ${CFLAGS} -o ${.TARGET} ${.ALLSRC} -L . -lBB0
-
-dev0: dev0.c
-	${CC} ${CFLAGS} -o ${.TARGET} ${.ALLSRC}
-
-libdlobsdwrap.so: libdlobsdwrap.c
-	${CC} ${CFLAGS} -o ${.TARGET} ${.ALLSRC} -fPIC -shared
-
 clean:
-	rm -f dev0 BlackBox libdlobsdwrap.so
+	rm -f loader

BIN
new/_OpenBSD_/Lin/Rsrc/loader/dev0


+ 0 - 1
new/_OpenBSD_/Lin/Rsrc/loader/libBB.so

@@ -1 +0,0 @@
-../../../libBB.so

+ 0 - 1
new/_OpenBSD_/Lin/Rsrc/loader/libBB0.so

@@ -1 +0,0 @@
-../../../libBB0.so

+ 0 - 21
new/_OpenBSD_/Lin/Rsrc/loader/libdlobsdwrap.c

@@ -1,21 +0,0 @@
-#include <dlfcn.h>
-
-void * __dlopen (const char *path, int mode)
-{
-	return dlopen(path, mode);
-}
-
-int __dlclose (void *handle)
-{
-	return dlclose(handle);
-}
-
-void * __dlsym (void *handle, const char *symbol)
-{
-	return dlsym(handle, symbol);
-}
-
-const char * __dlerror (void)
-{
-	return dlerror();
-}

BIN
new/_OpenBSD_/Lin/Rsrc/loader/libdlobsdwrap.so


BIN
new/_OpenBSD_/Lin/Rsrc/loader/loader


+ 0 - 1
new/_OpenBSD_/dev0

@@ -1 +0,0 @@
-Lin/Rsrc/loader/dev0

+ 0 - 1
new/_OpenBSD_/libdlobsdwrap.so

@@ -1 +0,0 @@
-Lin/Rsrc/loader/libdlobsdwrap.so

+ 1 - 0
new/_OpenBSD_/loader

@@ -0,0 +1 @@
+Lin/Rsrc/loader/loader

+ 6 - 6
new/build

@@ -118,15 +118,15 @@ DevCompiler.CompileThis ConsCompiler
 DATA
 
 ./run-BlackBox <<DATA
-DevCompiler.CompileThis CommStreams
-DevCompiler.CompileThis XhtmlEntitySets XhtmlWriters XhtmlStdFileWriters XhtmlTextTableMarkers XhtmlExporter
-
-DevCompiler.CompileThis ObxHello0 ObxPi ObxRandom ObxTrap
-DATA
+DevCompiler.CompileThis HostPackedFiles DevPacker
 
-./run-BlackBox <<DATA
+DevCompiler.CompileThis CommStreams
 ConsCompiler.Compile('Lin/Mod', 'Termios.txt')
 ConsCompiler.Compile('Lin/Mod', 'Ioctl.txt')
 ConsCompiler.Compile('Lin/Mod', 'Net.txt')
 DevCompiler.CompileThis CommV24 CommTCP
+
+DevCompiler.CompileThis XhtmlEntitySets XhtmlWriters XhtmlStdFileWriters XhtmlTextTableMarkers XhtmlExporter
+
+DevCompiler.CompileThis ObxHello0 ObxPi ObxRandom ObxTrap
 DATA

+ 8 - 3
new/run-BlackBox

@@ -4,9 +4,14 @@
 # ulimit -a
 
 rn=`readlink -f "${0}"`
-d=`dirname "${rn}"`
+pd=`dirname "${rn}"`
+sd=`readlink -f .`
 
-exe="BlackBox"
+loader="loader"
+lib="libBB.so"
 
 # export LD_DEBUG=all
-env LD_LIBRARY_PATH="${d}" BB_PRIMARY_DIR="${d}" BB_SECONDARY_DIR=. "${d}"/${exe}
+env \
+	BB_PRIMARY_DIR="${pd}" BB_SECONDARY_DIR="${sd}" \
+	BB_PACKED_NAME="${lib}" \
+	"${pd}"/${loader} "${pd}"/${lib}

+ 15 - 2
new/run-dev0

@@ -1,4 +1,17 @@
 #!/bin/sh
 
-# env LD_LIBRARY_PATH=. env LD_DEBUG=1 ./dev0
-env LD_LIBRARY_PATH=. ./dev0
+# ulimit -s 32000
+# ulimit -a
+
+rn=`readlink -f "${0}"`
+pd=`dirname "${rn}"`
+sd=`readlink -f .`
+
+loader="loader"
+lib="libBB0.so"
+
+# export LD_DEBUG=all
+env \
+	BB_PRIMARY_DIR="${pd}" BB_SECONDARY_DIR="${sd}" \
+	BB_PACKED_NAME="${lib}" \
+	"${pd}"/${loader} "${pd}"/${lib}

+ 1 - 1
new/switch-target

@@ -16,7 +16,7 @@ checkAndRm () {
 none() {
 	checkAndRm || exit 2
 
-	rm -rf *.exe *.so BlackBox dev0
+	rm -rf *.exe *.so loader
 #		System/Code/Kernel.ocf System/Sym/Kernel.osf Code/Kernel.ocf Sym/Kernel.osf \
 #		System/Code/Init.ocf System/Sym/Init.osf Code/Init.ocf Sym/Init.osf \
 #		System/Code/Config.ocf System/Sym/Config.osf Code/Config.ocf Sym/Config.osf \