diff options
Diffstat (limited to 'mcon/U')
-rw-r--r-- | mcon/U/Assert.U | 3 | ||||
-rw-r--r-- | mcon/U/Checkcc.U | 8 | ||||
-rw-r--r-- | mcon/U/Config_sh.U | 2 | ||||
-rw-r--r-- | mcon/U/Finish.U | 3 | ||||
-rw-r--r-- | mcon/U/Getfile.U | 2 | ||||
-rw-r--r-- | mcon/U/Head.U | 4 | ||||
-rw-r--r-- | mcon/U/Obsol_h.U | 2 | ||||
-rw-r--r-- | mcon/U/Obsol_sh.U | 2 | ||||
-rw-r--r-- | mcon/U/Specific.U | 26 | ||||
-rw-r--r-- | mcon/U/Trylink.U | 2 | ||||
-rw-r--r-- | mcon/U/ccflags.U | 8 | ||||
-rw-r--r-- | mcon/U/d_bfd_section.U | 49 | ||||
-rw-r--r-- | mcon/U/d_memrchr.U | 40 | ||||
-rw-r--r-- | mcon/U/d_tminsys.U | 2 | ||||
-rw-r--r-- | mcon/U/gccvers.U | 7 | ||||
-rw-r--r-- | mcon/U/nis.U | 12 | ||||
-rw-r--r-- | mcon/U/voidflags.U | 2 |
17 files changed, 140 insertions, 34 deletions
diff --git a/mcon/U/Assert.U b/mcon/U/Assert.U index 76de54d..1a38e49 100644 --- a/mcon/U/Assert.U +++ b/mcon/U/Assert.U @@ -20,7 +20,6 @@ ?X: There is no need to link the file to spot the assertion failure. ?X: $cat >static_assert.h <<'EOC' -#define STATIC_ASSERT(expr) \ - do { switch (0) { case ((expr) ? 1 : 0): case 0: break; } } while(0) +#define STATIC_ASSERT(expr) ((void) sizeof(char[1 - 2*!(expr)])) EOC diff --git a/mcon/U/Checkcc.U b/mcon/U/Checkcc.U index 3cae05c..ce0dc62 100644 --- a/mcon/U/Checkcc.U +++ b/mcon/U/Checkcc.U @@ -37,10 +37,10 @@ ?INIT:ccname='' ?INIT:ccversion='' : generate the trygcc script for later perusal -cat <<EOS >trygcc +$cat <<EOS >trygcc $startsh EOS -cat <<'EOSC' >>trygcc +$cat <<'EOSC' >>trygcc case "$cc" in '') ;; *) $rm -f try try.* @@ -100,10 +100,10 @@ esac EOSC : generate the checkcc script for later perusal -cat <<EOS >checkcc +$cat <<EOS >checkcc $startsh EOS -cat <<'EOSC' >>checkcc +$cat <<'EOSC' >>checkcc case "$cc" in '') ;; *) $rm -f try try.* diff --git a/mcon/U/Config_sh.U b/mcon/U/Config_sh.U index bb47b7b..1b3b0c6 100644 --- a/mcon/U/Config_sh.U +++ b/mcon/U/Config_sh.U @@ -32,7 +32,7 @@ ?MAKE: -pick add.Config_sh $@ %< ?MAKE: -pick add $@ ./Obsol_sh ?MAKE: -pick close.Config_sh $@ %< -?F:!config.over !config.arch +?F:!config.over !config.arch config.sh ?T:file sfile xsed ?LINT:unclosed EOT : back to where it started diff --git a/mcon/U/Finish.U b/mcon/U/Finish.U index cf5a364..13c970d 100644 --- a/mcon/U/Finish.U +++ b/mcon/U/Finish.U @@ -35,7 +35,7 @@ ?X: SH files, which among other things produce config.h and (usually) Makefile. ?X: It offers to do a make depend if the Makefile contains that target. ?X: -?MAKE:Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \ +?MAKE:Finish: Chk_MANI Extract Specific Myread Oldsym Magic_h cat rm contains \ test package make ?MAKE: -pick add $@ %< ?F:!config.sh @@ -138,4 +138,3 @@ $rm -f kit*isdone ark*isdone $rm -rf UU : End of Configure - diff --git a/mcon/U/Getfile.U b/mcon/U/Getfile.U index f5cf49b..641ea30 100644 --- a/mcon/U/Getfile.U +++ b/mcon/U/Getfile.U @@ -48,7 +48,7 @@ ?X: those are prefixes for the filename. Unless $gfpthkeep is set to 'y', ?X: gfpth is cleared on return from Getfile. ?X: -?X: If is is followed by a ~, then ~name substitution will occur. Upon return, +?X: If it is followed by a ~, then ~name substitution will occur. Upon return, ?X: $ans is set with the filename value. If a / is specified, then only a full ?X: path name is accepted (but ~ substitution occurs before, if needed). The ?X: expanded path name is returned in that case. diff --git a/mcon/U/Head.U b/mcon/U/Head.U index 933e489..0b8a98e 100644 --- a/mcon/U/Head.U +++ b/mcon/U/Head.U @@ -77,8 +77,8 @@ ?X: # Note: this Configure script was generated automatically. Rather than # working with this copy of Configure, you may wish to get metaconfig. -# The dist package (which contains metaconfig) is available via SVN: -# svn co https://svn.code.sf.net/p/dist/code/trunk/dist +# The dist package (which contains metaconfig) is available via git: +# git clone git@github.com:rmanfredi/dist.git ?X: ?X: NOTA BENE: ?X: If you develop you own version of metaconfig based on this work, diff --git a/mcon/U/Obsol_h.U b/mcon/U/Obsol_h.U index fc59938..c19c5a4 100644 --- a/mcon/U/Obsol_h.U +++ b/mcon/U/Obsol_h.U @@ -20,7 +20,7 @@ ?MAKE: -pick prepend $@ ./Obsol_h ?LINT:nocomment /* - * The following symbols are obsolete. They are mapped to the the new + * The following symbols are obsolete. They are mapped to the new * symbols only to ease the transition process. The sources should be * updated so as to use the new symbols only, as the support for these * obsolete symbols may end without notice. diff --git a/mcon/U/Obsol_sh.U b/mcon/U/Obsol_sh.U index de1a1e1..3b3f0d6 100644 --- a/mcon/U/Obsol_sh.U +++ b/mcon/U/Obsol_sh.U @@ -20,7 +20,7 @@ ?MAKE: -pick prepend $@ ./Obsol_sh ?LINT:nocomment # -# The following symbols are obsolete. They are mapped to the the new +# The following symbols are obsolete. They are mapped to the new # symbols only to ease the transition process. The sources should be # updated so as to use the new symbols only, since supporting of those # obsolete symbols may end without notice. diff --git a/mcon/U/Specific.U b/mcon/U/Specific.U new file mode 100644 index 0000000..feb189b --- /dev/null +++ b/mcon/U/Specific.U @@ -0,0 +1,26 @@ +?RCS: +?RCS: Copyright (c) 2018, Raphael Manfredi +?RCS: +?RCS: You may redistribute only under the terms of the Artistic License, +?RCS: as specified in the README file that comes with the distribution. +?RCS: You may reuse parts of this distribution only within the terms of +?RCS: that same Artistic License; a copy of which may be found at the root +?RCS: of the source tree for dist 4.0. +?RCS: +?X: +?X: This unit is intended to be a project-specific hook. +?X: By default, it is therefore empty, meant to be copied to your private +?X: unit directory (U) and seasoned to taste. +?X: +?X: If you need specific code generation to happen once the configuration +?X: is finished and config.sh was generated, but before the extraction of +?X: the .SH files begins, then this is the place to put these special +?X: code that the .SH files will require to run properly. +?X: +?X: When this unit triggers, Configure is back to the top directory. +?X: +?MAKE:Specific: Config_sh +?MAKE: -pick add $@ %< +?X: +?X: Keep the above ?MAKE: lines and then append your specific code here. +?X: diff --git a/mcon/U/Trylink.U b/mcon/U/Trylink.U index e38e0b2..9b2a380 100644 --- a/mcon/U/Trylink.U +++ b/mcon/U/Trylink.U @@ -74,7 +74,7 @@ case "$cyn" in "") echo "--- $var ---" >> "$file";; *) echo " "; $echo $n "Checking $msg...$c" >&4; - echo "--- $var --- ($msg)" >>"$file" + echo "--- $var --- ($msg)" >> "$file" ;; esac; $cat try.c >> "$file"; diff --git a/mcon/U/ccflags.U b/mcon/U/ccflags.U index 942e462..b134f57 100644 --- a/mcon/U/ccflags.U +++ b/mcon/U/ccflags.U @@ -174,11 +174,11 @@ dflt='' case "$hint" in default|recommended) case "$gccversion" in - 1*) dflt='-fpcc-struct-return' ;; + 1) dflt='-fpcc-struct-return' ;; esac ?X: check for POSIXized ISC case "$gccversion" in - 2*) if test -d /etc/conf/kconfig.d && + 2) if test -d /etc/conf/kconfig.d && $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 then dflt="$dflt -posix" @@ -187,7 +187,7 @@ default|recommended) esac ?X: turn warnings on if they're using gcc case "$gccversion" in - 1*|2*) dflt="$dflt -Wall";; + 1|2) dflt="$dflt -Wall";; ?X: starting with version 3, add "-W -Wall -Wformat=2 -Wshadow" by default *) dflt="$dflt -W -Wall -Wformat=2 -Wshadow";; esac @@ -265,7 +265,7 @@ esac : the following weeds options from ccflags that are of no interest to cpp cppflags="$ccflags" case "$gccversion" in -1*) cppflags="$cppflags -D__GNUC__" +1) cppflags="$cppflags -D__GNUC__" esac case "$mips_type" in '');; diff --git a/mcon/U/d_bfd_section.U b/mcon/U/d_bfd_section.U new file mode 100644 index 0000000..d876541 --- /dev/null +++ b/mcon/U/d_bfd_section.U @@ -0,0 +1,49 @@ +?RCS: $Id$ +?RCS: +?RCS: Copyright (c) 2020, Raphael Manfredi +?RCS: +?RCS: You may redistribute only under the terms of the Artistic License, +?RCS: as specified in the README file that comes with the distribution. +?RCS: You may reuse parts of this distribution only within the terms of +?RCS: that same Artistic License; a copy of which may be found at the root +?RCS: of the source tree for dist 4.0. +?RCS: +?MAKE:d_bfd_section: Trylink cat d_bfd_lib +?MAKE: -pick add $@ %< +?S:d_bfd_section: +?S: This variable conditionally defines the HAS_BFD_SECTION_1ARG symbol, +?S: which indicates to the C program that the bfd_section_xxx() accessors +?S: from the BFD library exists and taks only one argument. +?S:. +?C:HAS_BFD_SECTION_1ARG: +?C: This symbol, if defined, indicates that the bfd_section_xxx() accessors +?C: from the BFD library takes only one argument, which is the new behaviour +?C: starting from BFD 2.34. +?C:. +?H:#$d_bfd_section HAS_BFD_SECTION_1ARG /**/ +?H:. +: see whether bfd_section_vma exists and takes 1 argument +case "$d_bfd_lib" in +$undef) + d_bfd_section=$undef + ;; +*) + $cat >try.c <<EOC +?X: See d_bfd_lib.U to understand why we have to define these symbols. +#define PACKAGE +#define PACKAGE_VERSION +#include <bfd.h> +int main(void) +{ + bfd *b = 0; + asection *sec = 0; + + return 0 == bfd_section_vma(sec); +} +EOC + cyn="whether bfd_section_vma() takes 1 argument" + set d_bfd_section + eval $trylink + ;; +esac + diff --git a/mcon/U/d_memrchr.U b/mcon/U/d_memrchr.U new file mode 100644 index 0000000..c7b1c01 --- /dev/null +++ b/mcon/U/d_memrchr.U @@ -0,0 +1,40 @@ +?RCS: +?RCS: Copyright (c) 2018 Raphael Manfredi +?RCS: +?RCS: You may redistribute only under the terms of the Artistic License, +?RCS: as specified in the README file that comes with the distribution. +?RCS: You may reuse parts of this distribution only within the terms of +?RCS: that same Artistic License; a copy of which may be found at the root +?RCS: of the source tree for dist 4.0. +?RCS: +?MAKE:d_memrchr: Trylink cat +?MAKE: -pick add $@ %< +?S:d_memrchr: +?S: This variable conditionally defines the HAS_MEMRCHR symbol, which +?S: indicates to the C program that the memrchr() routine is available +?S: to scan a block of memory backwards for a character. +?S:. +?C:HAS_MEMRCHR: +?C: This symbol, if defined, indicates that the memrchr routine is available +?C: to scan a block of memory backwards for a character. +?C: If undefined, roll your own. +?C:. +?H:#$d_memrchr HAS_MEMRCHR /**/ +?H:. +?LINT:set d_memrchr +: see if memrchr exists +$cat >try.c <<EOC +#include <string.h> +int main(void) +{ + static char s[] = "xxx"; + static size_t n = sizeof(s); + void *p; + p = memrchr(s, 'x', n); + return p ? 0 : 1; +} +EOC +cyn=memrchr +set d_memrchr +eval $trylink + diff --git a/mcon/U/d_tminsys.U b/mcon/U/d_tminsys.U index 60fc95a..548a014 100644 --- a/mcon/U/d_tminsys.U +++ b/mcon/U/d_tminsys.U @@ -20,7 +20,7 @@ ?S:. ?C:TM_IN_SYS (TMINSYS): ?C: This symbol is defined if this system declares "struct tm" in -?C: in <sys/time.h> rather than <time.h>. We can't just say +?C: <sys/time.h> rather than <time.h>. We can't just say ?C: -I/usr/include/sys because some systems have both time files, and ?C: the -I trick gets the wrong one. ?C:. diff --git a/mcon/U/gccvers.U b/mcon/U/gccvers.U index 702a5e9..b5abb47 100644 --- a/mcon/U/gccvers.U +++ b/mcon/U/gccvers.U @@ -17,6 +17,9 @@ ?S: If GNU cc (gcc) is used, this variable holds '1' or '3' (for instance) ?S: to indicate whether the compiler is version 1 or 3. This is used in ?S: setting some of the default cflags. It is set to '' if not gcc. +?S: Note that it only contains the major version number, and, when using +?S: case statements to do different things depending on the major, do not +?S: use statements like "1*)" because it will match version 1, 10, 11, etc. ?S:. ?S:gccosandvers: ?S: If GNU cc (gcc) is used, this variable the operating system and @@ -58,7 +61,7 @@ else fi $rm -f try try.* case "$gccversion" in -1*) cpp=`./loc gcc-cpp $cpp $pth` ;; +1) cpp=`./loc gcc-cpp $cpp $pth` ;; esac case "$gccversion" in '') gccosandvers='' ;; @@ -99,7 +102,7 @@ esac : gcc 3.1 complains about adding -Idirectories that it already knows about, : so we will take those off from locincpth. case "$gccversion" in -3*) +3) echo "main(){}">try.c for incdir in `$cc -v -c try.c 2>&1 | \ sed '1,/^#include <\.\.\.>/d;/^End of search list/,$d;s/^ //'` ; do diff --git a/mcon/U/nis.U b/mcon/U/nis.U index 7332545..06e4c47 100644 --- a/mcon/U/nis.U +++ b/mcon/U/nis.U @@ -165,16 +165,4 @@ case "$passcat" in '') passcat=':' $test -f /etc/passwd && passcat='cat /etc/passwd';; esac -case "$hostcat" in -'') hostcat='cat /etc/hosts';; -*) ;; -esac -case "$groupcat" in -'') groupcat='cat /etc/group';; -*) ;; -esac -case "$passcat" in -'') passcat='cat /etc/passwd';; -*) ;; -esac diff --git a/mcon/U/voidflags.U b/mcon/U/voidflags.U index 0e0f49c..5db1db9 100644 --- a/mcon/U/voidflags.U +++ b/mcon/U/voidflags.U @@ -111,6 +111,8 @@ sub() { hue = buf; if (doit()) iptr = hue; +?X: Avoid "variable set but not used" compilation warning + (void) iptr; #endif doit(); } |