NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: toolchain/50731: config(8) adds bogus directories to include path
The following reply was made to PR toolchain/50731; it has been noted by GNATS.
From: Masao Uebayashi <uebayasi%gmail.com@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc:
Subject: Re: toolchain/50731: config(8) adds bogus directories to include path
Date: Tue, 2 Feb 2016 19:48:07 +0900
On Sun, Jan 31, 2016 at 12:10 PM, <okuyama%flex.phys.tohoku.ac.jp@localhost> wrote:
>>Description:
> config(8) adds bogus directories to include path. For example,
>
> % cd sys/arch/amd64/compile/GENERIC && cat Makefile
> ...
> ##
> ## (8) config(8) generated machinery
> ##
> EXTRA_INCLUDES+= -I$S/external/bsd/acpica/dist
> EXTRA_INCLUDES+= -I$S/../common/lib/libx86emu
>
> ...
>
> Both directories are not appropriate as include path.
>
> config(8) registers to include path a directory given as argument for
> "prefix" statement. This behavior was introduced 16 years ago,
>
> http://cvsweb.netbsd.org/bsdweb.cgi/src/usr.sbin/config/Attic/mkmakefile.c#rev1.41
>
> although it is not explicitly described in config(5). It was reasonable
> at that time, I guess, but rather inconvenient today. "prefix" statement
> appears in only two files: sys/external/bsd/acpica/conf/files.acpica and
> sys/lib/x86emu/files.x86emu.
This is partially because NetBSD has no good API for external kernel modules.
> Both of them are used in order to strip off
> lengthy paths from "file" statements, and not intended to indicate extra
> include path. If one wants to add some directory to include path,
> conditional "makeoptions" statement should be used as follows:
>
> % cat sys/external/bsd/acpica/conf/files.acpica
> ...
> makeoptions acpi CPPFLAGS+="-I$S/external/bsd/acpica/dist/include"
> ...
> %
>
> I think the current behavior of "prefix" statement is too much; it merely
> leads to undesired side effects.
I don't like "makeoptions" in general, because it can do anything.
Anything using "makeoptions" is a hack, IMO.
It would be nice if such a thing can be done in config(5); for
example, per-module "compile-with", instead of per-file.
>>How-To-Repeat:
> n/a
>>Fix:
> --- src/usr.bin/config/defs.h.orig 2016-01-31 10:09:25.437391353 +0900
> +++ src/usr.bin/config/defs.h 2016-01-31 10:09:46.352005127 +0900
> @@ -491,10 +491,8 @@
> struct filelist allsfiles; /* list of all .S files */
> struct filelist allofiles; /* list of all .o files */
>
> -struct prefixlist prefixes, /* prefix stack */
> - allprefixes; /* all prefixes used (after popped) */
> -struct prefixlist buildprefixes, /* build prefix stack */
> - allbuildprefixes;/* all build prefixes used (after popped) */
> +struct prefixlist prefixes; /* prefix stack */
> +struct prefixlist buildprefixes; /* build prefix stack */
> SLIST_HEAD(, prefix) curdirs; /* curdir stack */
>
> extern struct attr allattr;
> --- src/usr.bin/config/mkmakefile.c.orig 2016-01-31 10:09:25.438038145 +0900
> +++ src/usr.bin/config/mkmakefile.c 2016-01-31 10:09:46.352353243 +0900
> @@ -75,7 +75,6 @@
> static void emitsfiles(FILE *);
> static void emitrules(FILE *);
> static void emitload(FILE *);
> -static void emitincludes(FILE *);
> static void emitappmkoptions(FILE *);
> static void emitsubs(FILE *, const char *, const char *, int);
> static int selectopt(const char *, void *);
> @@ -154,8 +153,6 @@
> fn = emitrules;
> else if (strcmp(line, "%LOAD\n") == 0)
> fn = emitload;
> - else if (strcmp(line, "%INCLUDES\n") == 0)
> - fn = emitincludes;
> else if (strcmp(line, "%MAKEOPTIONSAPPEND\n") == 0)
> fn = emitappmkoptions;
> else if (strncmp(line, "%VERSION ", sizeof("%VERSION ")-1) == 0) {
> @@ -553,22 +550,6 @@
> }
>
> /*
> - * Emit include headers (for any prefixes encountered)
> - */
> -static void
> -emitincludes(FILE *fp)
> -{
> - struct prefix *pf;
> -
> - SLIST_FOREACH(pf, &allprefixes, pf_next) {
> - const char *prologue = (*pf->pf_prefix == '/') ? "" : "$S/";
> -
> - fprintf(fp, "EXTRA_INCLUDES+=\t-I%s%s\n",
> - prologue, pf->pf_prefix);
> - }
> -}
> -
> -/*
> * Emit appending makeoptions.
> */
> static void
> --- src/usr.bin/config/util.c.orig 2016-01-31 10:09:25.438496877 +0900
> +++ src/usr.bin/config/util.c 2016-01-31 10:09:46.352642491 +0900
> @@ -95,7 +95,7 @@
> }
>
> static void
> -prefixlist_pop(struct prefixlist *allpl, struct prefixlist *pl)
> +prefixlist_pop(struct prefixlist *pl)
> {
> struct prefix *pf;
>
> @@ -105,8 +105,6 @@
> }
>
> SLIST_REMOVE_HEAD(pl, pf_next);
> - /* Remember this prefix for emitting -I... directives later. */
> - SLIST_INSERT_HEAD(allpl, pf, pf_next);
> }
>
> /*
> @@ -124,7 +122,7 @@
> void
> prefix_pop(void)
> {
> - prefixlist_pop(&allprefixes, &prefixes);
> + prefixlist_pop(&prefixes);
> }
>
> /*
> @@ -142,7 +140,7 @@
> void
> buildprefix_pop(void)
> {
> - prefixlist_pop(&allbuildprefixes, &buildprefixes);
> + prefixlist_pop(&buildprefixes);
> }
>
> /*
> --- src/sys/arch/aarch64/conf/Makefile.aarch64.orig 2016-01-31 10:09:22.942616502 +0900
> +++ src/sys/arch/aarch64/conf/Makefile.aarch64 2016-01-31 10:11:22.179646102 +0900
> @@ -91,8 +91,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/acorn26/conf/Makefile.acorn26.orig 2016-01-31 10:09:22.949600485 +0900
> +++ src/sys/arch/acorn26/conf/Makefile.acorn26 2016-01-31 10:11:22.179826480 +0900
> @@ -91,8 +91,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/acorn32/conf/Makefile.acorn32.orig 2016-01-31 10:09:22.960680512 +0900
> +++ src/sys/arch/acorn32/conf/Makefile.acorn32 2016-01-31 10:11:22.180004275 +0900
> @@ -97,8 +97,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/alpha/conf/Makefile.alpha.orig 2016-01-31 10:09:22.987454073 +0900
> +++ src/sys/arch/alpha/conf/Makefile.alpha 2016-01-31 10:11:22.180191566 +0900
> @@ -87,8 +87,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/amd64/conf/Makefile.amd64.orig 2016-01-31 10:09:23.013572532 +0900
> +++ src/sys/arch/amd64/conf/Makefile.amd64 2016-01-31 10:11:22.180372363 +0900
> @@ -83,8 +83,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/amiga/conf/Makefile.amiga.orig 2016-01-31 10:09:23.023904789 +0900
> +++ src/sys/arch/amiga/conf/Makefile.amiga 2016-01-31 10:11:22.180550507 +0900
> @@ -87,8 +87,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/arm/conf/Makefile.arm.orig 2016-01-31 10:09:23.094274851 +0900
> +++ src/sys/arch/arm/conf/Makefile.arm 2016-01-31 10:11:22.180746318 +0900
> @@ -112,8 +112,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/atari/conf/Makefile.atari.orig 2016-01-31 10:09:23.155122507 +0900
> +++ src/sys/arch/atari/conf/Makefile.atari 2016-01-31 10:11:22.180927954 +0900
> @@ -78,8 +78,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/cesfic/conf/Makefile.cesfic.orig 2016-01-31 10:09:23.198042607 +0900
> +++ src/sys/arch/cesfic/conf/Makefile.cesfic 2016-01-31 10:11:22.181105678 +0900
> @@ -73,8 +73,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/hp300/conf/Makefile.hp300.orig 2016-01-31 10:09:23.354842677 +0900
> +++ src/sys/arch/hp300/conf/Makefile.hp300 2016-01-31 10:11:22.181282146 +0900
> @@ -74,8 +74,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/hpcarm/conf/Makefile.hpcarm.orig 2016-01-31 10:09:23.389741568 +0900
> +++ src/sys/arch/hpcarm/conf/Makefile.hpcarm 2016-01-31 10:11:22.181465038 +0900
> @@ -78,8 +78,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/hppa/conf/Makefile.hppa.orig 2016-01-31 10:09:23.434310352 +0900
> +++ src/sys/arch/hppa/conf/Makefile.hppa 2016-01-31 10:11:22.181641575 +0900
> @@ -90,8 +90,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/i386/conf/Makefile.i386.orig 2016-01-31 10:09:23.454519347 +0900
> +++ src/sys/arch/i386/conf/Makefile.i386 2016-01-31 10:11:22.181824817 +0900
> @@ -102,8 +102,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/ia64/conf/Makefile.ia64.orig 2016-01-31 10:09:23.494499065 +0900
> +++ src/sys/arch/ia64/conf/Makefile.ia64 2016-01-31 10:11:22.181996536 +0900
> @@ -66,8 +66,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/luna68k/conf/Makefile.luna68k.orig 2016-01-31 10:09:23.529327355 +0900
> +++ src/sys/arch/luna68k/conf/Makefile.luna68k 2016-01-31 10:11:22.182178171 +0900
> @@ -80,8 +80,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/mac68k/conf/Makefile.mac68k.orig 2016-01-31 10:09:23.559958133 +0900
> +++ src/sys/arch/mac68k/conf/Makefile.mac68k 2016-01-31 10:11:22.182355197 +0900
> @@ -76,8 +76,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/mips/conf/Makefile.mips.orig 2016-01-31 10:09:23.599012986 +0900
> +++ src/sys/arch/mips/conf/Makefile.mips 2016-01-31 10:11:22.182541022 +0900
> @@ -129,8 +129,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/mvme68k/conf/Makefile.mvme68k.orig 2016-01-31 10:09:23.637986413 +0900
> +++ src/sys/arch/mvme68k/conf/Makefile.mvme68k 2016-01-31 10:11:22.182713579 +0900
> @@ -92,8 +92,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/sh3/conf/Makefile.sh3.orig 2016-01-31 10:09:23.662905772 +0900
> +++ src/sys/arch/sh3/conf/Makefile.sh3 2016-01-31 10:11:22.183620428 +0900
> @@ -79,8 +79,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/news68k/conf/Makefile.news68k.orig 2016-01-31 10:09:23.672194029 +0900
> +++ src/sys/arch/news68k/conf/Makefile.news68k 2016-01-31 10:11:22.182885996 +0900
> @@ -76,8 +76,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/next68k/conf/Makefile.next68k.orig 2016-01-31 10:09:23.691297500 +0900
> +++ src/sys/arch/next68k/conf/Makefile.next68k 2016-01-31 10:11:22.183061277 +0900
> @@ -76,8 +76,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/powerpc/conf/Makefile.powerpc.orig 2016-01-31 10:09:23.735554061 +0900
> +++ src/sys/arch/powerpc/conf/Makefile.powerpc 2016-01-31 10:11:22.183265747 +0900
> @@ -151,8 +151,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/riscv/conf/Makefile.riscv.orig 2016-01-31 10:09:23.769030317 +0900
> +++ src/sys/arch/riscv/conf/Makefile.riscv 2016-01-31 10:11:22.183446265 +0900
> @@ -119,8 +119,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/sparc/conf/Makefile.sparc.orig 2016-01-31 10:09:23.825774596 +0900
> +++ src/sys/arch/sparc/conf/Makefile.sparc 2016-01-31 10:11:22.183789144 +0900
> @@ -74,8 +74,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/sparc64/conf/Makefile.sparc64.orig 2016-01-31 10:09:23.846177726 +0900
> +++ src/sys/arch/sparc64/conf/Makefile.sparc64 2016-01-31 10:11:22.183982093 +0900
> @@ -142,8 +142,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/sun2/conf/Makefile.sun2.orig 2016-01-31 10:09:23.861888997 +0900
> +++ src/sys/arch/sun2/conf/Makefile.sun2 2016-01-31 10:11:22.184155767 +0900
> @@ -85,8 +85,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/sun3/conf/Makefile.sun3.orig 2016-01-31 10:09:23.869351893 +0900
> +++ src/sys/arch/sun3/conf/Makefile.sun3 2016-01-31 10:11:22.184330698 +0900
> @@ -87,8 +87,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/usermode/conf/Makefile.usermode.orig 2016-01-31 10:09:23.888286648 +0900
> +++ src/sys/arch/usermode/conf/Makefile.usermode 2016-01-31 10:11:22.184508632 +0900
> @@ -110,8 +110,6 @@
>
> ##
> ## (8) config(8) generated machinery
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/vax/conf/Makefile.vax.orig 2016-01-31 10:09:23.898753962 +0900
> +++ src/sys/arch/vax/conf/Makefile.vax 2016-01-31 10:11:22.184680840 +0900
> @@ -78,8 +78,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/x68k/conf/Makefile.x68k.orig 2016-01-31 10:09:23.926509302 +0900
> +++ src/sys/arch/x68k/conf/Makefile.x68k 2016-01-31 10:11:22.184848788 +0900
> @@ -91,8 +91,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
> --- src/sys/arch/xen/conf/Makefile.xen.orig 2016-01-31 10:09:23.948380807 +0900
> +++ src/sys/arch/xen/conf/Makefile.xen 2016-01-31 10:11:22.185026583 +0900
> @@ -132,8 +132,6 @@
> ##
> ## (8) config(8) generated machinery
> ##
> -%INCLUDES
> -
> %OBJS
>
> %CFILES
>
Home |
Main Index |
Thread Index |
Old Index