[schilytools] [RELEASE] 2023-09-28

Dennis Clarke dclarke at blastwave.org
Sun Oct 1 05:27:10 CEST 2023


On 9/28/23 15:48, Robert Clausecker wrote:
> Dear schilytools users,
> 
> I am proud to present the 2023-09-28 release of schilytools.
> This is largely a bug fix release.  We hope that you find it
> useful.
> 
> Please obtain the release tarball schily-2023-09-28.tar.bz2 from one
> of the hosts listed below.  The SHA3-384 checksum is:
> 
> 43bf43201aa482be0f592e801873b71e3ef1cdd6f942f82d2caddb7808e5ca48e2ff294f805eedb03bad4edf9a96331d
> 
Thus far it seems to pretty much just compile fine on most machines.
Certainly no problem on FreeBSD 13.2-p3 on AMD64.

However on a FreeBSD 15.0-CURRENT machine it blows up rather neatly :

.
.
.

         ==> MAKING DEPENDENCIES "OBJ/amd64-freebsd-clang/misc.d"
         ==> MAKING DEPENDENCIES "OBJ/amd64-freebsd-clang/mksh.d"
         ==> MAKING DEPENDENCIES "OBJ/amd64-freebsd-clang/read.d"
         ==> COMPILING "OBJ/amd64-freebsd-clang/dosys.o"
In file included from dosys.cc:64:
In file included from ../../../include/mksh/defs.h:114:
../../../include/vroot/vroot.h:58:30: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern  void            add_dir_to_path(register const char *path, 
register pathpt *pointer, register int position);
                                         ^~~~~~~~~
../../../include/vroot/vroot.h:58:57: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern  void            add_dir_to_path(register const char *path, 
register pathpt *pointer, register int position);
 
^~~~~~~~~
../../../include/vroot/vroot.h:58:83: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern  void            add_dir_to_path(register const char *path, 
register pathpt *pointer, register int position);
 
                      ^~~~~~~~~
../../../include/vroot/vroot.h:62:30: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern  char            *get_vroot_path(register char **vroot, register 
char **path, register char **filename);
                                         ^~~~~~~~~
../../../include/vroot/vroot.h:62:53: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern  char            *get_vroot_path(register char **vroot, register 
char **path, register char **filename);
                                                                ^~~~~~~~~
../../../include/vroot/vroot.h:62:75: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern  char            *get_vroot_path(register char **vroot, register 
char **path, register char **filename);
 
              ^~~~~~~~~
../../../include/vroot/vroot.h:65:34: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern  pathpt          parse_path_string(register char *string, 
register int remove_slash);
                                           ^~~~~~~~~
../../../include/vroot/vroot.h:65:57: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern  pathpt          parse_path_string(register char *string, 
register int remove_slash);
                                                                  ^~~~~~~~~
In file included from dosys.cc:65:
../../../include/mksh/dosys.h:42:22: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern Boolean  await(register Boolean ignore_error, register Boolean 
silent_error, Name target, wchar_t *command, pid_t running_pid, Boolean 
send_mtool_msgs, void *xdrs, int job_msg_id);
                       ^~~~~~~~~
../../../include/mksh/dosys.h:42:53: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern Boolean  await(register Boolean ignore_error, register Boolean 
silent_error, Name target, wchar_t *command, pid_t running_pid, Boolean 
send_mtool_msgs, void *xdrs, int job_msg_id);
                                                      ^~~~~~~~~
../../../include/mksh/dosys.h:44:19: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern int      doexec(register wchar_t *command, register Boolean 
ignore_error, Boolean redirect_out_err, char *stdout_file, char 
*stderr_file, pathpt vroot_path, int nice_prio);
                        ^~~~~~~~~
../../../include/mksh/dosys.h:44:46: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern int      doexec(register wchar_t *command, register Boolean 
ignore_error, Boolean redirect_out_err, char *stdout_file, char 
*stderr_file, pathpt vroot_path, int nice_prio);
                                                   ^~~~~~~~~
../../../include/mksh/dosys.h:45:38: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern int      doshell(wchar_t *command, register Boolean ignore_error, 
Boolean redirect_out_err, char *stdout_file, char *stderr_file, int 
nice_prio);
                                           ^~~~~~~~~
../../../include/mksh/dosys.h:46:26: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern Doname   dosys_mksh(register Name command, register Boolean 
ignore_error, register Boolean call_make, Boolean silent_error, Boolean 
always_exec, Name target, Boolean redirect_out_err, char *stdout_file, 
char *stderr_file, pathpt vroot_path, int nice_prio);
                            ^~~~~~~~~
../../../include/mksh/dosys.h:46:49: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern Doname   dosys_mksh(register Name command, register Boolean 
ignore_error, register Boolean call_make, Boolean silent_error, Boolean 
always_exec, Name target, Boolean redirect_out_err, char *stdout_file, 
char *stderr_file, pathpt vroot_path, int nice_prio);
                                                   ^~~~~~~~~
../../../include/mksh/dosys.h:46:80: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern Doname   dosys_mksh(register Name command, register Boolean 
ignore_error, register Boolean call_make, Boolean silent_error, Boolean 
always_exec, Name target, Boolean redirect_out_err, char *stdout_file, 
char *stderr_file, pathpt vroot_path, int nice_prio);
 
          ^~~~~~~~~
../../../include/mksh/dosys.h:48:31: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern void     sh_command2string(register String command, register 
String destination);
                                   ^~~~~~~~~
../../../include/mksh/dosys.h:48:56: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern void     sh_command2string(register String command, register 
String destination);
                                                            ^~~~~~~~~
In file included from dosys.cc:66:
../../../include/mksh/macro.h:53:26: error: ISO C++17 does not allow 
'register' storage class specifier [-Wregister]
extern void     expand_macro(register Source source, register String 
destination, wchar_t *current_string, Boolean cmd, Expand_Type exp_type 
= deflt_expand);
                              ^~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
smake: *** Code 1 (Operation not permitted) from command line for target 
'OBJ/amd64-freebsd-clang/dosys.o'.
smake: The following command caused the error:
echo "  ==> COMPILING \"OBJ/amd64-freebsd-clang/dosys.o\""; clang++ 
-Wall -Wno-unknown-pragmas  -Wshadow -Wmissing-prototypes 
-Wstrict-prototypes -Wno-deprecated-register -O    -DSCHILY_BUILD 
-IOBJ/amd64-freebsd-clang -I../../../../../incs/amd64-freebsd-clang 
-I../../../../../include  -I../../../../include -I../../../include 
-DSCHILY_INCLUDES -DUSE_LARGEFILES -DSUN5_0 -DSUNOS4_AND_AFTER -DPMAKE 
-DREDIRECT_ERR  -I/usr/local/include    -c -o 
OBJ/amd64-freebsd-clang/dosys.o dosys.cc
smake: Couldn't make 'all'.
smake: Leaving  '/root/schily-2023-09-28/./psmake/smake'[3] from 
directory '/root/schily-2023-09-28/sunpro/Make/lib/mksh/src'
smake: Default commandline target: 'all'
smake: Doing                       exit(1)
smake: *** Code 1 (Operation not permitted) from command line for target 
'all'.
smake: The following command caused the error:
list="lib/bsd/src lib/mksh/src lib/vroot/src lib/makestate/src 
bin/make/common";                                       \
         if [ -d TARGETS -a -f TARGETS/__slot ]; then 
         \
                 list=`echo TARGETS/[0123456789][0123456789]* | 
         \
                         sed -e 's;TARGETS/[0123456789][0123456789];;g' 
| sed -e 's;!@!;/;g'`;\
         fi; 
         \
         for DIR in ${list} ; 
         \
         do 
         \
                 ( 
         \
                 echo "  ==> MAKING \"all\" ON SUBDIRECTORY 
\"SRCROOT/sunpro/Make/$DIR\"";\
                 if [ -d ./$DIR -a -r ./$DIR/Makefile ] ; then 
         \
                         cd ./$DIR && 
"/root/schily-2023-09-28/./psmake/smake"  XARCH=amd64-freebsd-clang 
DIRNAME=SRCROOT/sunpro/Make/$DIR all;          \
                 else 
         \
                         echo "NOTICE: Partial source 
(SRCROOT/sunpro/Make/$DIR) missing";\
                 fi 
         \
                 ); 
         \
         done
smake: Couldn't make 'all'.
smake: Leaving  '/root/schily-2023-09-28/./psmake/smake'[2] from 
directory '/root/schily-2023-09-28/sunpro/Make'
smake: Default commandline target: 'all'
smake: Doing                       exit(1)
smake: *** Code 1 (Operation not permitted) from command line for target 
'all'.
smake: The following command caused the error:
list="Make";                                                    \
         if [ -d TARGETS -a -f TARGETS/__slot ]; then 
         \
                 list=`echo TARGETS/[0123456789][0123456789]* | 
         \
                         sed -e 's;TARGETS/[0123456789][0123456789];;g' 
| sed -e 's;!@!;/;g'`;\
         fi; 
         \
         for DIR in ${list} ; 
         \
         do 
         \
                 ( 
         \
                 echo "  ==> MAKING \"all\" ON SUBDIRECTORY 
\"SRCROOT/sunpro/$DIR\"";\
                 if [ -d ./$DIR -a -r ./$DIR/Makefile ] ; then 
         \
                         cd ./$DIR && 
"/root/schily-2023-09-28/./psmake/smake"  XARCH=amd64-freebsd-clang 
DIRNAME=SRCROOT/sunpro/$DIR all;               \
                 else 
         \
                         echo "NOTICE: Partial source 
(SRCROOT/sunpro/$DIR) missing";\
                 fi 
         \
                 ); 
         \
         done
smake: Couldn't make 'all'.
smake: Leaving  '/root/schily-2023-09-28/./psmake/smake'[1] from 
directory '/root/schily-2023-09-28/sunpro'
smake: Default commandline target: 'all'
smake: Doing                       exit(1)
smake: *** Code 1 (Operation not permitted) from command line for target 
'all'.
smake: The following command caused the error:
list="";                                                        \
         if [ -d TARGETS -a -f TARGETS/__slot ]; then 
         \
                 list=`echo TARGETS/[0123456789][0123456789]* | 
         \
                         sed -e 's;TARGETS/[0123456789][0123456789];;g' 
| sed -e 's;!@!;/;g'`;\
         fi; 
         \
         for DIR in ${list} ; 
         \
         do 
         \
                 ( 
         \
                 echo "  ==> MAKING \"all\" ON SUBDIRECTORY 
\"SRCROOT/$DIR\"";\
                 if [ -d ./$DIR -a -r ./$DIR/Makefile ] ; then 
         \
                         cd ./$DIR && 
"/root/schily-2023-09-28/./psmake/smake"  XARCH=amd64-freebsd-clang 
DIRNAME=SRCROOT/$DIR all;              \
                 else 
         \
                         echo "NOTICE: Partial source (SRCROOT/$DIR) 
missing";\
                 fi 
         \
                 ); 
         \
         done
smake: Couldn't make 'all'.

hydra#


I guess the LLVM/Clang ver 16.0.6 is to blame here and maybe there needs
to be a way to enforce C99 or something.

hydra# cc --version
FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git 
llvmorg-16.0.6-0-g7cbf1a259152)
Target: x86_64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin
hydra#

hydra#
hydra# uname -apKU
FreeBSD hydra 15.0-CURRENT FreeBSD 15.0-CURRENT #0 
main-n265508-0a5d2802b41f: Mon Sep 25 14:53:05 GMT 2023 
root at hydra:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 amd64 1500001 
1500001
hydra#

Looking into FreeBSD ports https://www.freshports.org/misc/schilytools
it looks to be the revision from April so I will just let that build
cleanly on FreeBSD CURRENT and not get too overly concerned.



--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
UNIX and Linux spoken



More information about the schilytools mailing list