Возвращаемое значение программы

Oper

Есть такая программа:
/* confdefs.h. */
#define PACKAGE_NAME "GNU C Library"
#define PACKAGE_TARNAME "c-library"
#define PACKAGE_VERSION "(see version.h)"
#define PACKAGE_STRING "GNU C Library (see version.h)"
#define PACKAGE_BUGREPORT "glibc"
#define HAVE_LIBIDN 1
#define USE_REGPARMS 1
#ifdef __cplusplus
extern "C" void std::exit (int) throw ; using std::exit;
#endif
#define ASM_GLOBAL_DIRECTIVE .globl
#define HAVE_ASM_SET_DIRECTIVE 1
#define ASM_TYPE_DIRECTIVE_PREFIX @
#define DO_VERSIONING 1
#define HAVE_ASM_PREVIOUS_DIRECTIVE 1
#define HAVE_PROTECTED 1
#define HAVE_HIDDEN 1
#define HAVE_VISIBILITY_ATTRIBUTE 1
#define HAVE_Z_RELRO 1
#define HAVE_Z_COMBRELOC 1
#define ENABLE_OLD_SSP_COMPAT 1
#define NO_UNDERSCORES 1
#define HAVE_ASM_WEAK_DIRECTIVE 1
#define HAVE_ASM_CFI_DIRECTIVES 1
#define HAVE_BUILTIN_EXPECT 1
#define HAVE_BUILTIN_REDIRECTION 1
#define HAVE___THREAD 1
#define HAVE_TLS_MODEL_ATTRIBUTE 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
/* end confdefs.h. */
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
long longval { return (long) (sizeof (long double; }
unsigned long ulongval { return (long) (sizeof (long double; }
#include <stdio.h>
#include <stdlib.h>
int
main
{
FILE *f = fopen ("conftest.val", "w");
if (! f)
exit (1);
if long) (sizeof (long double < 0)
{
long i = longval ;
if (i != long) (sizeof (long double
exit (2);
fprintf (f, "%ld\n", i);
}
else
{
unsigned long i = ulongval ;
if (i != long) (sizeof (long double
exit (3);
fprintf (f, "%lu\n", i);
}
exit (4);
exit (ferror (f) || fclose (f) != 0);
;
return 0;
}
Компилируется командой
cc a.c -o a
Возвращаемое значение (echo $?) оказывается равно 127.
Как такое может быть, если кто знает - подскажите, plz! (скорее всего код зависит от значений каких-то переменных окружения, поскольку в "нормальном" окружении все работает, а в окружении, получаемом при запуске скрипта из ебилда такая вот фигня выходит)
Если что, то скрипт - ./configure для glibc, дистр Gentoo для amd64.

Landstreicher

Прогнал бы gcc -E перед тем, как постить. А то в глазах рябит.

Ober

он уже разобралсо, если чо =) gcc -E ему не помог бы

psihodog

и в чём там было дело?
я вот тоже не понимаю, как там может 127 вернуться.
Оставить комментарий
Имя или ник:
Комментарий: