There many occurences of the global variable g_exports and the opportunity for collisions. Make the global variable names unique.
This commit is contained in:
parent
e778a6990d
commit
5ecec24084
@ -1465,14 +1465,14 @@ examples/posix_spawn
|
|||||||
|
|
||||||
Requires:
|
Requires:
|
||||||
|
|
||||||
CONFIG_BINFMT_DISABLE=n - Don't disable the binary loader
|
CONFIG_BINFMT_DISABLE=n - Don't disable the binary loader
|
||||||
CONFIG_ELF=y - Enable ELF binary loader
|
CONFIG_ELF=y - Enable ELF binary loader
|
||||||
CONFIG_LIBC_EXECFUNCS=y - Enable support for posix_spawn
|
CONFIG_LIBC_EXECFUNCS=y - Enable support for posix_spawn
|
||||||
CONFIG_EXECFUNCS_SYMTAB="g_exports" - The name of the symbol table
|
CONFIG_EXECFUNCS_SYMTAB="g_spawn_exports" - The name of the symbol table
|
||||||
created by the test.
|
created by the test.
|
||||||
CONFIG_EXECFUNCS_NSYMBOLS=10 - Value does not matter, it will be
|
CONFIG_EXECFUNCS_NSYMBOLS=10 - Value does not matter, it will be
|
||||||
corrected at runtime.
|
corrected at runtime.
|
||||||
CONFIG_POSIX_SPAWN_STACKSIZE=768 - This default setting.
|
CONFIG_POSIX_SPAWN_STACKSIZE=768 - This default setting.
|
||||||
|
|
||||||
Test-specific configuration options:
|
Test-specific configuration options:
|
||||||
|
|
||||||
|
@ -164,8 +164,8 @@ static char fullpath[128];
|
|||||||
* Symbols from Auto-Generated Code
|
* Symbols from Auto-Generated Code
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
extern const struct symtab_s g_exports[];
|
extern const struct symtab_s g_elf_exports[];
|
||||||
extern const int g_nexports;
|
extern const int g_elf_nexports;
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Private Functions
|
* Private Functions
|
||||||
@ -343,7 +343,7 @@ int elf_main(int argc, char *argv[])
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
args[0] = NULL;
|
args[0] = NULL;
|
||||||
ret = exec(filename, args, g_exports, g_nexports);
|
ret = exec(filename, args, g_elf_exports, g_elf_nexports);
|
||||||
|
|
||||||
mm_update(&g_mmstep, "after exec");
|
mm_update(&g_mmstep, "after exec");
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ for var in $varlist; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "const struct symtab_s g_exports[] = "
|
echo "const struct symtab_s g_elf_exports[] = "
|
||||||
echo "{"
|
echo "{"
|
||||||
|
|
||||||
for var in $varlist; do
|
for var in $varlist; do
|
||||||
@ -47,5 +47,5 @@ done
|
|||||||
|
|
||||||
echo "};"
|
echo "};"
|
||||||
echo ""
|
echo ""
|
||||||
echo "const int g_nexports = sizeof(g_exports) / sizeof(struct symtab_s);"
|
echo "const int g_elf_nexports = sizeof(g_elf_exports) / sizeof(struct symtab_s);"
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ int nxflat_main(int argc, char *argv[])
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
args[0] = NULL;
|
args[0] = NULL;
|
||||||
ret = exec(filename, args, g_exports, NEXPORTS);
|
ret = exec(filename, args, g_nxflat_exports, NEXPORTS);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
errmsg("ERROR: exec(%s) failed: %d\n", dirlist[i], errno);
|
errmsg("ERROR: exec(%s) failed: %d\n", dirlist[i], errno);
|
||||||
|
@ -24,7 +24,7 @@ echo "#define __EXAMPLES_NXFLAT_TESTS_SYMTAB_H"
|
|||||||
echo ""
|
echo ""
|
||||||
echo "#include <nuttx/binfmt/symtab.h>"
|
echo "#include <nuttx/binfmt/symtab.h>"
|
||||||
echo ""
|
echo ""
|
||||||
echo "static const struct symtab_s g_exports[] = "
|
echo "static const struct symtab_s g_nxflat_exports[] = "
|
||||||
echo "{"
|
echo "{"
|
||||||
|
|
||||||
for string in $varlist; do
|
for string in $varlist; do
|
||||||
@ -33,7 +33,7 @@ for string in $varlist; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo "};"
|
echo "};"
|
||||||
echo "#define NEXPORTS (sizeof(g_exports)/sizeof(struct symtab_s))"
|
echo "#define NEXPORTS (sizeof(g_nxflat_exports)/sizeof(struct symtab_s))"
|
||||||
echo ""
|
echo ""
|
||||||
echo "#endif /* __EXAMPLES_NXFLAT_TESTS_SYMTAB_H */"
|
echo "#endif /* __EXAMPLES_NXFLAT_TESTS_SYMTAB_H */"
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ for var in $varlist; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "const struct symtab_s g_exports[] = "
|
echo "const struct symtab_s g_spawn_exports[] = "
|
||||||
echo "{"
|
echo "{"
|
||||||
|
|
||||||
for var in $varlist; do
|
for var in $varlist; do
|
||||||
@ -47,5 +47,5 @@ done
|
|||||||
|
|
||||||
echo "};"
|
echo "};"
|
||||||
echo ""
|
echo ""
|
||||||
echo "const int g_nexports = sizeof(g_exports) / sizeof(struct symtab_s);"
|
echo "const int g_spawn_nexports = sizeof(g_spawn_exports) / sizeof(struct symtab_s);"
|
||||||
|
|
||||||
|
@ -160,8 +160,8 @@ static char * const g_argv[4] =
|
|||||||
* Symbols from Auto-Generated Code
|
* Symbols from Auto-Generated Code
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
extern const struct symtab_s g_exports[];
|
extern const struct symtab_s g_spawn_exports[];
|
||||||
extern const int g_nexports;
|
extern const int g_spawn_nexports;
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Private Functions
|
* Private Functions
|
||||||
@ -300,8 +300,8 @@ int spawn_main(int argc, char *argv[])
|
|||||||
|
|
||||||
/* Make sure that we are using our symbol tablee */
|
/* Make sure that we are using our symbol tablee */
|
||||||
|
|
||||||
symdesc.symtab = (FAR struct symtab_s *)g_exports; /* Discard 'const' */
|
symdesc.symtab = (FAR struct symtab_s *)g_spawn_exports; /* Discard 'const' */
|
||||||
symdesc.nsymbols = g_nexports;
|
symdesc.nsymbols = g_spawn_nexports;
|
||||||
(void)boardctl(BOARDIOC_APP_SYMTAB, (uintptr_t)&symdesc);
|
(void)boardctl(BOARDIOC_APP_SYMTAB, (uintptr_t)&symdesc);
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
@ -57,7 +57,7 @@ static void modprint(FAR const char *fmt, ...);
|
|||||||
* Private Data
|
* Private Data
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static const struct symtab_s g_exports[1] =
|
static const struct symtab_s g_modprint_exports[1] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
(FAR const char *)"modprint", (FAR const void *)modprint,
|
(FAR const char *)"modprint", (FAR const void *)modprint,
|
||||||
@ -109,7 +109,7 @@ int module_initialize(FAR struct mod_info_s *modinfo)
|
|||||||
|
|
||||||
modinfo->uninitializer = module_uninitialize;
|
modinfo->uninitializer = module_uninitialize;
|
||||||
modinfo->arg = NULL;
|
modinfo->arg = NULL;
|
||||||
modinfo->exports = g_exports;
|
modinfo->exports = g_modprint_exports;
|
||||||
modinfo->nexports = 1;
|
modinfo->nexports = 1;
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
|
@ -72,7 +72,7 @@ static const char g_msg1[] = "Hello to you too!";
|
|||||||
static const char g_msg2[] = "Not so bad so far.";
|
static const char g_msg2[] = "Not so bad so far.";
|
||||||
static const char g_msg3[] = "Yes, don't be a stranger!";
|
static const char g_msg3[] = "Yes, don't be a stranger!";
|
||||||
|
|
||||||
static const struct symtab_s g_exports[6] =
|
static const struct symtab_s g_sotest_exports[6] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
(FAR const char *)"testfunc1", (FAR const void *)testfunc1,
|
(FAR const char *)"testfunc1", (FAR const void *)testfunc1,
|
||||||
@ -171,7 +171,7 @@ int module_initialize(FAR struct mod_info_s *modinfo)
|
|||||||
|
|
||||||
modinfo->uninitializer = module_uninitialize;
|
modinfo->uninitializer = module_uninitialize;
|
||||||
modinfo->arg = NULL;
|
modinfo->arg = NULL;
|
||||||
modinfo->exports = g_exports;
|
modinfo->exports = g_sotest_exports;
|
||||||
modinfo->nexports = 6;
|
modinfo->nexports = 6;
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
|
@ -24,7 +24,7 @@ echo "#define __EXAMPLES_NXFLAT_TESTS_SYMTAB_H"
|
|||||||
echo ""
|
echo ""
|
||||||
echo "#include <nuttx/binfmt/symtab.h>"
|
echo "#include <nuttx/binfmt/symtab.h>"
|
||||||
echo ""
|
echo ""
|
||||||
echo "static const struct symtab_s g_exports[] = "
|
echo "static const struct symtab_s g_thttpd_exports[] = "
|
||||||
echo "{"
|
echo "{"
|
||||||
|
|
||||||
for string in $varlist; do
|
for string in $varlist; do
|
||||||
@ -33,7 +33,7 @@ for string in $varlist; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo "};"
|
echo "};"
|
||||||
echo "#define NEXPORTS (sizeof(g_exports)/sizeof(struct symtab_s))"
|
echo "#define NEXPORTS (sizeof(g_thttpd_exports)/sizeof(struct symtab_s))"
|
||||||
echo ""
|
echo ""
|
||||||
echo "#endif /* __EXAMPLES_NXFLAT_TESTS_SYMTAB_H */"
|
echo "#endif /* __EXAMPLES_NXFLAT_TESTS_SYMTAB_H */"
|
||||||
|
|
||||||
|
@ -338,7 +338,7 @@ int thttp_main(int argc, char *argv[])
|
|||||||
/* Start THTTPD. At present, symbol table info is passed via global variables */
|
/* Start THTTPD. At present, symbol table info is passed via global variables */
|
||||||
|
|
||||||
#ifdef CONFIG_THTTPD_NXFLAT
|
#ifdef CONFIG_THTTPD_NXFLAT
|
||||||
g_thttpdsymtab = g_exports;
|
g_thttpdsymtab = g_thttpd_exports;
|
||||||
g_thttpdnsymbols = NEXPORTS;
|
g_thttpdnsymbols = NEXPORTS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user