Explorar el Código

HostPackedFiles implemented

Alexander Shiryaev hace 12 años
padre
commit
545d598292

BIN
BlackBox/Dev/Docu/Packer.odc


BIN
BlackBox/Dev/Mod/Packer.odc


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


+ 5 - 5
BlackBox/_OpenBSD_/Lin/Mod/Dl.txt

@@ -1,4 +1,4 @@
-MODULE LinDl ["libdlobsdwrap.so"];
+MODULE LinDl ["ld.so"];
 
 	(*
 		A. V. Shiryaev, 2012.09
@@ -26,10 +26,10 @@ MODULE LinDl ["libdlobsdwrap.so"];
 		HANDLE* = PtrVoid;
 		PtrSTR* = POINTER TO ARRAY [untagged] OF SHORTCHAR;
 
-	PROCEDURE [ccall] dlopen* ["__dlopen"] (file: PtrSTR; mode: INTEGER): HANDLE;
-	PROCEDURE [ccall] dlclose* ["__dlclose"] (handle: HANDLE): INTEGER;
-	PROCEDURE [ccall] dlsym* ["__dlsym"] (handle: HANDLE; symbol: PtrSTR): HANDLE;
+	PROCEDURE [ccall] dlopen* (file: PtrSTR; mode: INTEGER): HANDLE;
+	PROCEDURE [ccall] dlclose* (handle: HANDLE): INTEGER;
+	PROCEDURE [ccall] dlsym* (handle: HANDLE; symbol: PtrSTR): HANDLE;
 
-	PROCEDURE [ccall] dlerror* ["__dlerror"] (): PtrSTR;
+	PROCEDURE [ccall] dlerror* (): PtrSTR;
 
 END LinDl.

+ 2 - 9
BlackBox/_OpenBSD_/Lin/Rsrc/loader/Makefile

@@ -6,11 +6,7 @@
 
 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: dev0 BlackBox
 
 # -pthread required to dlopen libraries that depends on pthread
 
@@ -26,8 +22,5 @@ BlackBox: BlackBox-dl.c
 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 dev0 BlackBox

+ 0 - 21
BlackBox/_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
BlackBox/_OpenBSD_/libBB.so


BIN
BlackBox/_OpenBSD_/libBB0.so


+ 0 - 1
BlackBox/_OpenBSD_/libdlobsdwrap.so

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

+ 6 - 6
BlackBox/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 - 2
BlackBox/run-BlackBox

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

+ 5 - 1
README

@@ -15,7 +15,6 @@ How to build:
 		make clean
 		make
 		mv BlackBox dev0 ../../../_`uname -s`_/Lin/Rsrc/loader/
-		OpenBSD: move also libdlobsdwrap.so
 
 	compile self:
 		cd BlackBox
@@ -108,6 +107,10 @@ Files:
 		_LinuxOpenBSD_/Host/Mod/TextConv.odc:
 			BlackBox 1.6-rc6 Host/Mod/TextConv.odc:
 				Windows-specific converters removed
+		_LinuxOpenBSD_/Host/Mod/PackedFiles.odc:
+			BlackBox 1.6-rc6 Host/Mod/PackedFiles.odc:
+				use BB_PACKED_NAME environment variable instead of appName
+				GetNextSubLoc, GetLoc: filenames-specific
 		_LinuxOpenBSD_/System/Mod/Config.odc:
 			BlackBox 1.6-rc6 System/Mod/Config.odc:
 				Windows-specific removed
@@ -166,5 +169,6 @@ Notes:
 		Environment variables supported instead:
 			BB_PRIMARY_DIR
 			BB_SECONDARY_DIR (was: /USE command line option)
+			BB_PACKED_NAME
 
 A. V. Shiryaev, 2012

+ 0 - 2
TODO

@@ -12,8 +12,6 @@ By priority:
 
 	printing (to PostScript)
 
-	HostPackedFiles
-
 	Kernel: handle stack overflows
 		OpenBSD: 2012.11: sigaltstack & siglongjmp problem,
 			see /usr/src/regress/sys/kern/stackjmp