Commit Graph

124 Commits

Author SHA1 Message Date
Masahiro Yamada
eef8eb4033 kconfig: display recursive dependency resolution hint just once
Commit 1c199f2878f6 ("kbuild: document recursive dependency limitation
/ resolution") probably intended to show a hint along with "recursive
dependency detected!" error, but it missed to add {...} guard, and the
hint is displayed in every loop of the dep_stack traverse, annoyingly.

This error was detected by GCC's -Wmisleading-indentation when switching
to build-time generation of lexer/parser.

scripts/kconfig/symbol.c: In function ‘sym_check_print_recursive’:
scripts/kconfig/symbol.c:1150:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if (stack->sym == last_sym)
   ^~
scripts/kconfig/symbol.c:1153:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
    fprintf(stderr, "For a resolution refer to Documentation/kbuild/kconfig-language.txt\n");
    ^~~~~~~

I could simply add {...} to surround the three fprintf(), but I rather
chose to move the hint after the loop to make the whole message readable.

Fixes: 1c199f2878f6 ("kbuild: document recursive dependency limitation / resolution"
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Luis R. Rodriguez <mcgrof@kernel.org>

[upstream commit e3b03bf29d6b99fab7001fb20c33fe54928c157a]
Fixes #1000
Signed-off-by: Chris Packham <judge.packham@gmail.com>
2018-07-10 14:25:20 +12:00
Alexey Neyman
c50c3a923e Supply explicit --tag CC
... to libtool, to allow CC overrides at make stage.

Fixes #940.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-13 21:36:59 -07:00
Alexey Neyman
0dc8565c4f Merge steps.mk into ct-ng
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
9dc94f3662 Install "pure data" directories
... and update .gitignore. Survives 'make distcheck'.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
dbe3877285 Install ct-ng
Also, move kconfig.mk into the main driver - we'd want kconfig to be a sub-package
so there's no sense in writing the installation framework for the ct-ng-specific
fragment in an otherwise independent directory.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
d9d4d09026 Enable mconf build
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
9a4e17cf9b Add nconf build
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
9238b58721 WIP: autotoolization
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:03:17 -07:00
Alexey Neyman
576dcc3fee Remove special handling of dpkg-buildflags
Instead, just honor CFLAGS/CPPFLAGS/LDFLAGS as they're passed down from
configure. This brings the build process in compliance with the
recommended practices.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:02:33 -07:00
Alexey Neyman
d401afbdda Get rid of sub{lib,doc}dir
They don't make sense - using same ct-ng won't work with different versions,
so they cannot coexist in the same prefix.

Also localize other configure variables so that their usage is easier to track.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:02:33 -07:00
Alexey Neyman
0bcb67fa52 Use autoconfig-archve/automake tests
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-07 12:02:33 -07:00
Alexey Neyman
a624244b15 Make defconfig (and a bunch of other targets) phony
Otherwise, a file named `defconfig` (which is, ironically, the default name
for the default config expected by this very makefile) prevents the defconfig
target from being run.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-02-09 22:38:37 -08:00
Bryan Hundven
59b08f8d06 Sync kconfig files with upstream 4.15
Last updated with 4.9-rc7.
This commit introduces the following upstream changes:

9059a3493efe kconfig: fix relational operators for bool and tristate symbols
88127dae6ed9 kconfig/symbol.c: use correct pointer type argument for sizeof
b24413180f56 License cleanup: add SPDX GPL-2.0 license identifier to files with no license
bb3290d91695 Remove gperf usage from toolchain
ad8181060788 kconfig: fix sparse warnings in nconfig
ff85a1a80e00 kconfig: Check for libncurses before menuconfig
9be3213b14d4 gconfig: remove misleading parentheses around a condition
83c3a1bad224 xconfig: fix missing suboption and help panels on first run
e039303ff71a xconfig: fix 'Show Debug' functionality
79e51b5c2dee kconfig/nconf: Fix hang when editing symbol with a long prompt
0eb47346968f Scripts: kconfig: nconf: fix _GNU_SOURCE redefined warning
237e3ad0f195 Kconfig: Introduce the "imply" keyword

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2018-01-31 16:39:45 -08:00
Alexey Neyman
ae71ce4106 Kconfigize choice/menu items
Also, add a poor man's upgrade script.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08 10:57:56 -07:00
Alexey Neyman
1b4e784a0b Fix debuild warnings/errors
- Update .gitignore, do not place .gitignore into directories installed
in bulk
- Remove executable permissions and shebangs from the scripts that are
supposed to be invoked only via ct-ng frontent; prepend them with $(bash).
Despite what showSamples.sh said, it already has some bashisms.
- Remove --with autotools-dev and override dh_update_autotools_config
to avoid having config.{sub,guess} clobbered with older versions
- Install bash completion where Debian (now) expects it
- Update man page to use .\" as the comment delimiter, instead of
undefined macro (."); also, minor text edits.
- Install kconfig.mk without execute permission.
- Remove shell wrappers from 170-localedef-fix-trampoline.patch, we
do not use that for applying patches
- Revoke execute permissions on 210-expat.sh
- Get flags from dpkg-buildflags if available

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-06-07 22:38:53 -07:00
Alexey Neyman
2f286ce5ab Retire BACKEND stuff
... it is possible to just not set it in the configuration, why force
it? It just increases the complexity in Kconfig.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-04-23 00:24:41 -07:00
Alexey Neyman
c9dad33728 Use config from the install location
... no need to create a local symlink.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-04-22 23:33:36 -07:00
Alexey Neyman
6f5afbdf82 Allow 'make V=1' to see the commands.
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-04-22 11:55:19 -07:00
Alexey Neyman
59bab98b2d Revert "Determine whether -E/-r option selects extended regexp"
This reverts commit 7bcf18bfab.
2017-02-26 19:06:35 -08:00
Alexey Neyman
7bcf18bfab Determine whether -E/-r option selects extended regexp
... and then use the right option. See the note in scripts/functions
on where we should use ${foo} and where just 'foo'; this boils down to
whether we can expect the build tools override to be in effect (e.g. in
the actual build scripts) or not (i.e. outside of scripts/build).
While running in scripts/functions, or in scripts/crosstool-NG.sh the
build tools override directory (.build/tools/bin) may have not been
set up (yet, or at all).

Also, modify the installed scripts (populate, xldd) accordingly.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-13 22:47:40 -08:00
Alexey Neyman
3bb2bcd2a3 Add a check for gperf function signature.
Loosely based on:
c9f7b4d356

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-12 23:00:34 -08:00
Alexey Neyman
f3fcb8d2f8 Ignore *.exe (on Cygwin).
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-12-06 10:33:20 -08:00
Bryan Hundven
89a2182f14 kconfig: sync upstream changes
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-11-30 16:34:39 -08:00
Bryan Hundven
5d9ac48c9a Update .gitignore in kconfig/...
Ignore `*.dep` and `*.o`.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2016-08-04 01:23:27 -07:00
Bryan Hundven
6c49a232a8 configure: Correctly search for tinfo for kconfig
I previously thought that tinfo could only be a link to libncurses in
modern ncurses installations. I was wrong.

Now we check for ncurses, then check for tinfo. If tinfo is a link to
ncurses, it is then not required to link against. But if libtinfo is
providing tgetent, and not libncurses, then we must add it to LIBS as
well.

Also, kconfig shouldn't hardcode -lncurses, it should use what is in
$(LIBS).

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-14 23:14:44 -08:00
Bryan Hundven
e4bb360748 file modes: Set files to be non-executable
I was going to start doing some autoconf work, and noticed that
configure.in was executable. Then I noticed Makefile.in was executable.

o.O

So, I ran ```find . -type f -executable``` and found a bunch of files
that shouldn't be set executable.

This commit makes them normal files again.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 23:18:04 -08:00
Bryan Hundven
57de8dcf22 Merge pull request #239 from diorcety-ctng/cc-cygwin-mingw-linux
Canadian cross build = x86_64 Cygwin host = x86_64 MinGW_W64 target = x86_64 GNU/Linux
2015-11-12 21:50:31 -08:00
Ray Donnelly
2cf7a83fde Cygwin: Link to libintl for gettext
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
2015-11-13 02:17:43 +00:00
Bryan Hundven
e40f4ee011 kconfig: Add updates from linux-4.3 and 4.4
Add updates from the following merges:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/scripts/kconfig?id=605e9710fb5fef0dd2bb49d7b75e46601df62112

and

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/scripts/kconfig?id=152813e6e4bbb5f017e33eba7eb01bbda4b389b8

that apply to crosstool-ng.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-11 21:27:24 -08:00
Alexey Neyman
5844514e74 Fix samples using GMP 4.3.2.
Some older versions of configure (including the one in GMP 4.3.2)
interpret the $ECHO environment variable as the `echo' utility to
use. CT-NG sets the variable to `:' and exports it if V=0 or V=1
is supplied, breaking the samples using such configure. This currently
includes bfin-unknown-linux-uclibc and powerpc-unknown-linux-uclibc.

Also, correct the description of the V= variable - V=0 is *not* the
default; in fact, default does not correspond to any of the V=[012]
values.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-10-30 16:24:52 -07:00
Bryan Hundven
0cffa79d9f kconfig: Update kconfig. Sync with Linux-4.2
This change updates the kconfig utility to what is shipped with 4.2.0.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-09-03 19:00:28 -07:00
Lawrence D'Anna
575d56ee68 build compat fix for mac os: define offsetof if it's missing
When building on Mac OS, we don't seem to have offsetof when we need it for
gperf-generated code.   This patch solves that issue.

Signed-off-by: Lawrence D'Anna <larry@elder-gods.org>
2015-04-07 21:14:23 -07:00
Jason T. Masker
10e1579799 scripts/crosstool-NG.sh.in: patch regex to work with BSD grep
BSD grep does not interpret a null alteration. It complains about an
empty sub-expression, e.g.:

$ grep --version && grep -E '^(# |)CT_' .config
grep (BSD grep) 2.5.1-FreeBSD
grep: empty (sub)expression

This patch replaces the null alteration with a zero or once quantifier
which works with both BSD & GNU grep.

$ grep --version && grep -E '^(# )?CT_' .config
grep (BSD grep) 2.5.1-FreeBSD
CT_CONFIGURE_has_xz=y
CT_CONFIGURE_has_svn=y
...
$ ggrep --version && ggrep -E '^(# )?CT_' .config
ggrep (GNU grep) 2.20
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and others, see
<http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
CT_CONFIGURE_has_xz=y
CT_CONFIGURE_has_svn=y
...

Signed-off-by: Jason T. Masker <jason@masker.net>
Tested-by: Andreas Bießmann <andreas@biessmann.de>
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-05 03:12:57 -08:00
Yann E. MORIN
bdf731eead repository: migrate old hg files over to git
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-06-27 00:28:53 +02:00
Yann E. MORIN"
6ed78d4cba all: fix wildcard to work with make-4.x
In make-3.8x, the $(wildacrd) function would sort the entries,
while in make-4.x, it would just return the entries in any
unpredictable order [*]

Use the $(sort) function to get reproducible behaviour.

[*] Well, most probably the roder the entries appear when read
from readdir()

Reported-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
2014-06-25 23:33:01 +02:00
Ray Donnelly
d2bc2be8db configure: Add --with-gperf option
On OS X, Apple supply an old gperf (3.0.3) with xcode and
xcode commandline tools which causes build failures:

./zconf.hash.c:183:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str2),

.. upgrading to gperf 3.0.4 was sufficient to fix this,
so this option allows the user to specify the gperf
program that they wish to use.

To install gperf 3.0.4 from homebrew, I did:

    brew tap homebrew/dupes
    brew install homebrew/dupes/gperf

.. then passed --with-gperf=$BREWFIX/Cellar/gperf/3.0.4/bin/gperf
to configure

Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Message-Id: <CAOYw7dtCmcJ9WiqmQ81MmZeRPcV-tDOqe9=kRDW4uQGuZNd2Ng@mail.gmail.com>
Patchwork-Id: 274892
2013-09-14 02:45:23 +01:00
Thomas De Schampheleire
2aa92300fd docs/help: rename defconfig/olddefconfig into
After commit 15f57d843296e244487ac0845a73247f9d6749b8, the defconfig target
has been renamed into savedefconfig, and olddefconfig into defconfig. However,
the help text and man page was not updated.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
[yann.morin.1998@free.fr: rename CONFIG -> DEFCONFIG]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <0c1dff89c9ee1672693f.1374042343@BEANTN0L019720>
Patchwork-Id: 259601
2013-07-17 08:25:43 +02:00
Yann E. MORIN"
5e9d4ba24f kconfig: rename the defconfig and olddefconfig targets
What 'defconfig' really does is save the current .config to a defconfig,
so it is better named 'savedefconfig' (as other projects do).

What 'olddefconfig' really does is create a .config from a defconfig,
so rename it to 'defconfig' (as other projects do, too).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-01-22 00:34:15 +01:00
Yann E. MORIN"
143c1430c9 samples: add rule to dump current .config into a defconfig
... and one to restore it, of course.

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-15 22:06:22 +02:00
Yann E. MORIN"
00316d9875 kconfig: fix ncurses headers location
On some distors (eg. latesst openSuSE), the ncurses headers are not
located in the usual location.

Hard-code this location in the kconfig Makefile, as a (temporary?)
workaround.

Reported-by: Simon Gornall <sgornall@apple.com>
[Fix suggested by Simon]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-07-31 23:04:49 +02:00
Yann E. MORIN"
9c75afd9d3 configure: check for GNU awk, not any awk
Building glibc requires GNU awk, not any other.

Reported-by: Han Sooloo <hansooloo@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-07-14 18:25:47 +02:00
Thomas De Schampheleire
4e762e4918 kconfig: fix compatibility with older flex versions
Older flex versions require there be no space between options and
their arguments. For example '-P zconf' is not correct and should
be '-Pzconf'. This is for example the case for flex-2.5.4 shipped
with CentOS 5.8.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Message-Id: <9652ce148bddc1def484.1339241000@beantl019720>
2012-07-14 19:52:58 +02:00
Yann E. MORIN"
99a6ddf3be samples: use savedefconfig when saving samples
When saving a sample, use savedefconfig instead of copying
the full .config file.

This reduces the saved .config, and reduces clutter when it
is later upgraded.

Also use defconfig when retrieving a sample.

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-05-07 00:27:05 +02:00
Yann E. MORIN"
e0babe6738 kconfig: add missing files
The real sources for a few files are the lex/yacc/gperf
files, and the C files are only generated...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-15 01:04:26 +01:00
Yann E. MORIN"
cb7fcbe1ef kconfig: install compiled frontends
The kconfig frontends are currently instaleld as source files. This is
a remnant of the early times, when I wanted a single installation of
crosstool-NG to be shared across multiple machines, potentially of
different architectures.

This does not really make sense, and it's been a long time since it
was las tpossible in practice.

So, just build the kconfig frontends at make-time, and install them
as we do for all other crosstool-NG dependent files.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-14 18:22:06 +01:00
Yann E. MORIN"
6c62da4803 kconfig: print version in .config
Having the crosstool-NG version in the .config helps in case we
want to reproduce the toolchain with the exact same version of
crosstool-NG.

This also reverts #bb73e7632b54.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-30 11:35:29 +02:00
Yann E. MORIN"
c009897aee misc: fix more typos here and there...
Reported-by: "Antony N. Pavlov" <antony@niisi.msk.ru>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17 16:53:40 +02:00
Yann E. MORIN"
d855275562 kconfig: fix forward dependencies
In case a set of options are conditional to two different paths,
the forward dependencies in these options is wrong, but in the
first path.

Fix by Arnaud Lacombe on linux-kbuild ML:
  http://www.spinics.net/lists/linux-kbuild/msg04832.html

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-22 17:44:34 +02:00
Yann E. MORIN"
df1b44cd26 kconfig: add the nconf frontend
The nconf frontend is the new hot topic in the kconfig land! :-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-12 19:45:30 +02:00
Yann E. MORIN"
82250e56c7 kconfig: remove mis-leading messages
Unlinke the Linux kernel, crosstool-NG does not (directly) use make
as a frontend, so remove any occurence of reference to running make
after the configuration.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-12 19:46:23 +02:00