فهرست منبع

check & fix for FreeBSD 12.1

Ivan Denisov 5 سال پیش
والد
کامیت
b19cdea6f8

BIN
BlackBox/_FreeBSD_/Dev2/Mod/LnkChmod.odc


BIN
BlackBox/_FreeBSD_/Host/Mod/Files.odc


BIN
BlackBox/_FreeBSD_/Lin/Mod/Iconv.odc


BIN
BlackBox/_FreeBSD_/Lin/Mod/Libc.odc


BIN
BlackBox/_FreeBSD_/Lin/Mod/Net.odc


+ 7 - 1
BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/Makefile

@@ -8,7 +8,7 @@ INCDIR ?= /usr/include
 
 PY = python2.7
 
-DEFS = clockspersec defs-map defs-prot defs-sigmask defs-signo defs-fpe defs-sa defs-errno namemax defs-fcntlo defs-basictypes defs-sc
+DEFS = clockspersec defs-map defs-prot defs-sigmask defs-signo defs-fpe defs-sa defs-errno namemax defs-fcntlo defs-basictypes defs-sc defs-wait
 
 all: Libc.odc ${DEFS} strerrnocase.txt
 
@@ -60,6 +60,12 @@ defs-sc:
 	./dumpdefs.py 2 1 i ${INCDIR}/unistd.h | grep _SC_ > ${.TARGET}
 	./dumpdefs.py 2 2 i ${INCDIR}/unistd.h | grep _SC_ > ${.TARGET}
 
+defs-wait:
+	grep "define WAIT_ANY" ${INCDIR_I386}/sys/wait.h | sed s'/(//' | sed s'/)//' | awk '{print "		" $$3 "* = " $$4 ";"}' > $@
+	./dumpdefs.py 2 1 s ${INCDIR}/sys/wait.h | grep "	WCONTINUED" >> $@
+	./dumpdefs.py 2 1 s ${INCDIR}/sys/wait.h | grep "	WNOHANG" >> $@
+	./dumpdefs.py 2 1 s ${INCDIR}/sys/wait.h | grep "	WUNTRACED" >> $@
+
 #defs-madv:
 #	./dumpdefs.py 2 1 i ${INCDIR}/sys/mman.h | grep MADV | sed 's/_//' > ${.TARGET}
 #	./dumpdefs.py 2 2 i ${INCDIR}/sys/mman.h | grep MADV >> ${.TARGET}

+ 2 - 0
BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/custom

@@ -8,3 +8,5 @@
 
 	(* POSIX.1 *)
 		PROCEDURE [ccall] stat* (path: PtrSTR; VAR sp: stat_t): int;
+
+		PROCEDURE [ccall] sigsetjmp* (VAR env: sigjmp_buf; savemask: int): int;

+ 10 - 22
BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/fields-stat

@@ -1,23 +1,15 @@
-			(* FreeBSD 9.0 /usr/include/sys/stat.h *)
-				st_dev*: dev_t; (* inode's device *)
-				st_ino*: ino_t; (* inode's number *)
+			(* FreeBSD 11.0 /usr/include/sys/stat.h *)
+				st_dev*: uint32_t; (* inode's device *)
+				st_ino*: uint32_t; (* inode's number *)
 				st_mode*: mode_t; (* inode protection mode *)
-				st_nlink*: nlink_t; (* number of hard links *)
+				st_nlink*: uint16_t; (* number of hard links *)
 				st_uid*: uid_t; (* user ID of the file's owner *)
 				st_gid*: gid_t; (* group ID of the file's group *)
-				st_rdev*: dev_t; (* device type *)
+				st_rdev*: uint32_t; (* device type *)
 
-(*
-				st_atim: timespec_t; (* time of last access *)
-				st_mtim: timespec_t; (* time of last data modification *)
-				st_ctim: timespec_t; (* time of last file status change *)
-*)
-				st_atime*: time_t;
-				st_atimensec*: long;
-				st_mtime*: time_t;
-				st_mtimensec*: long;
-				st_ctime*: time_t;
-				st_ctimensec*: long;
+				st_atim*: timespec_t; (* time of last access *)
+				st_mtim*: timespec_t; (* time of last data modification *)
+				st_ctim*: timespec_t; (* time of last file status change *)
 
 				st_size*: off_t; (* file size, in bytes *)
 				st_blocks*: blkcnt_t; (* blocks allocated for file *)
@@ -26,10 +18,6 @@
 				st_gen*: uint32_t; (* file generation number *)
 				st_lspare*: int32_t;
 
-(*
-				st_birthtim: timespec_t; (* time of file creation *)
-*)
-				__st_birthtime*: time_t;
-				__st_birthtimensec*: long;
+				__st_birthtime*: timespec_t;
 
-				___pad: ARRAY [untagged] 2 OF INTEGER; (* FreeBSD 9.0: sizeof(struct stat) = 96 B *)
+				___pad: ARRAY [untagged] 2 OF INTEGER;

+ 1 - 1
BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/osname

@@ -1 +1 @@
-FreeBSD 11.0
+FreeBSD 12.1

+ 5 - 3
BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/sizeofs.c

@@ -68,6 +68,8 @@ int main ()
 	D("dev_t", sizeof(dev_t), FALSE, TRUE);
 	D("ino_t", sizeof(ino_t), FALSE, TRUE);
 	D("nlink_t", sizeof(nlink_t), FALSE, TRUE);
+	D("blkcnt_t", sizeof(blkcnt_t), FALSE, FALSE);
+	D("blksize_t", sizeof(blksize_t), FALSE, FALSE);
 	D("int8_t", sizeof(int8_t), FALSE, TRUE);
 	D("uint8_t", sizeof(u_int8_t), FALSE, TRUE);
 	D("int16_t", sizeof(int16_t), FALSE, TRUE);
@@ -77,13 +79,13 @@ int main ()
 	D("int64_t", sizeof(int64_t), FALSE, TRUE);
 	D("uint64_t", sizeof(u_int64_t), FALSE, TRUE);
 	D("wchar_t", sizeof(wchar_t), FALSE, TRUE);
-	D("sigset_t", sizeof(sigset_t), TRUE, TRUE);
 	D("sigjmp_buf", sizeof(sigjmp_buf), FALSE, TRUE);
 	D("intFlags", sizeof(int), TRUE, TRUE);
 	/* D("FILE", sizeof(FILE), FALSE, FALSE); */
-	D("blkcnt_t", sizeof(blkcnt_t), FALSE, TRUE);
-	D("blksize_t", sizeof(blksize_t), FALSE, TRUE);
 	D("fflags_t", sizeof(fflags_t), TRUE, TRUE);
 
+	printf("%ssigset_t* = ARRAY [untagged] %d OF BYTE;\n", TABS, (int)sizeof(sigset_t));
+	printf("%sPtrSigset_t* = POINTER [untagged] TO sigset_t;\n", TABS);
+
 	return 0;
 }

+ 1 - 0
BlackBox/_FreeBSD_/Lin/Mod/gen-Net/Makefile

@@ -35,6 +35,7 @@ defs-sol:
 
 defs-msg:
 	./dumpdefs.py 2 1 s ${INCDIR}/sys/socket.h | grep "	MSG_" > ${.TARGET}
+	./dumpdefs.py 2 2 s ${INCDIR}/sys/socket.h | grep "	MSG_NOSIGNAL" >> ${.TARGET}
 
 defs-somaxconn:
 	./dumpdefs.py 2 1 i ${INCDIR}/sys/socket.h | grep "	SOMAXCONN" > ${.TARGET}

+ 1 - 1
BlackBox/_FreeBSD_/Lin/Mod/gen-Net/osname

@@ -1 +1 @@
-FreeBSD 11.0
+FreeBSD 12.1

BIN
BlackBox/_FreeBSD_/System/Mod/Kernel.odc


BIN
BlackBox/_FreeBSD_/blackbox


BIN
BlackBox/_FreeBSD_/dev0


+ 0 - 0
BlackBox/_FreeBSDLinuxOpenBSD_/Dev2/Mod/LnkChmod.odc → BlackBox/_LinuxOpenBSD_/Dev2/Mod/LnkChmod.odc


+ 1 - 1
README.md

@@ -10,7 +10,7 @@ Tested on:
 * CentOS 8
 * Arch Linux 4.9.6, Manjaro Linux 18.0.4
 * Red Hat Enterprise Linux Server 6.3
-* FreeBSD 11.0
+* FreeBSD 12.1
 
 Download: https://blackbox.oberon.org/download