kconfig/zconf.gperf
author Daniel Price <daniel.price@gmail.com>
Tue Nov 20 16:59:17 2012 -0800 (2012-11-20)
changeset 3126 333d3e40cbd1
permissions -rw-r--r--
scripts: refine static linking check to better guide the user

The current mechanism to check if static linking is possible, and the mesage
displayed on failure, can be puzzling to the unsuspecting user.

Also, the current implementation is not using the existing infrastructure,
and is thus difficult to enhance with new tests.

So, switch to using the standard CT_DoExecLog infra, and use four tests to
check for the host compiler:
- check we can run it
- check it can build a trivial program
- check it can statically link that program
- check if it statically link with libstdc++

That should cover most of the problems. Hopefully.

(At the same time, fix a typo in a comment)

Signed-off-by: Daniel Price <daniel.price@gmail.com>
[yann.morin.1998@free.fr: split original patch for self-contained changes]
[yann.morin.1998@free.fr: use steps to better see gcc's output]
[yann.morin.1998@free.fr: commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <163f86b5216fc08c672a.1353459722@nipigon.dssd.com>
Patchwork-Id: 200536
     1 %language=ANSI-C
     2 %define hash-function-name kconf_id_hash
     3 %define lookup-function-name kconf_id_lookup
     4 %define string-pool-name kconf_id_strings
     5 %compare-strncmp
     6 %enum
     7 %pic
     8 %struct-type
     9 
    10 struct kconf_id;
    11 
    12 static struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
    13 
    14 %%
    15 mainmenu,	T_MAINMENU,	TF_COMMAND
    16 menu,		T_MENU,		TF_COMMAND
    17 endmenu,	T_ENDMENU,	TF_COMMAND
    18 source,		T_SOURCE,	TF_COMMAND
    19 choice,		T_CHOICE,	TF_COMMAND
    20 endchoice,	T_ENDCHOICE,	TF_COMMAND
    21 comment,	T_COMMENT,	TF_COMMAND
    22 config,		T_CONFIG,	TF_COMMAND
    23 menuconfig,	T_MENUCONFIG,	TF_COMMAND
    24 help,		T_HELP,		TF_COMMAND
    25 if,		T_IF,		TF_COMMAND|TF_PARAM
    26 endif,		T_ENDIF,	TF_COMMAND
    27 depends,	T_DEPENDS,	TF_COMMAND
    28 optional,	T_OPTIONAL,	TF_COMMAND
    29 default,	T_DEFAULT,	TF_COMMAND, S_UNKNOWN
    30 prompt,		T_PROMPT,	TF_COMMAND
    31 tristate,	T_TYPE,		TF_COMMAND, S_TRISTATE
    32 def_tristate,	T_DEFAULT,	TF_COMMAND, S_TRISTATE
    33 bool,		T_TYPE,		TF_COMMAND, S_BOOLEAN
    34 boolean,	T_TYPE,		TF_COMMAND, S_BOOLEAN
    35 def_bool,	T_DEFAULT,	TF_COMMAND, S_BOOLEAN
    36 int,		T_TYPE,		TF_COMMAND, S_INT
    37 hex,		T_TYPE,		TF_COMMAND, S_HEX
    38 string,		T_TYPE,		TF_COMMAND, S_STRING
    39 select,		T_SELECT,	TF_COMMAND
    40 range,		T_RANGE,	TF_COMMAND
    41 visible,	T_VISIBLE,	TF_COMMAND
    42 option,		T_OPTION,	TF_COMMAND
    43 on,		T_ON,		TF_PARAM
    44 modules,	T_OPT_MODULES,	TF_OPTION
    45 defconfig_list,	T_OPT_DEFCONFIG_LIST,TF_OPTION
    46 env,		T_OPT_ENV,	TF_OPTION
    47 %%