better --info
This commit is contained in:
@@ -50,18 +50,23 @@
|
|||||||
#define OBSOLETE
|
#define OBSOLETE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// available when?
|
|
||||||
// Tells gcc that function is library-internal;
|
// Tells gcc that function is library-internal;
|
||||||
// so no need to do dynamic linking at run-time.
|
// so no need to do dynamic linking at run-time.
|
||||||
#if __GNUC__ > 2 // FIXME: total random guess that's sure to be wrong
|
// This might work with slightly older compilers too.
|
||||||
#define VISIBILITY_HIDDEN visibility("hidden")
|
#if ( __GNUC__ == 3 && __GNUC_MINOR__ > 1 ) || __GNUC__ > 3
|
||||||
|
#define HIDDEN __attribute__((visibility("hidden")))
|
||||||
#else
|
#else
|
||||||
#define VISIBILITY_HIDDEN
|
#define HIDDEN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Like HIDDEN, but for an alias that gets created.
|
||||||
|
// In gcc-3.2 there is an alias+hidden conflict.
|
||||||
|
// Many will have patched this bug, but oh well.
|
||||||
|
#if ( __GNUC__ == 3 && __GNUC_MINOR__ > 2 ) || __GNUC__ > 3
|
||||||
|
#define HIDDEN_ALIAS(x) extern __typeof(x) x##_direct __attribute__((alias(#x),visibility("hidden")))
|
||||||
|
#else
|
||||||
|
#define HIDDEN_ALIAS(x) extern __typeof(x) x##_direct __attribute__((alias(#x)))
|
||||||
#endif
|
#endif
|
||||||
// mark function for internal use
|
|
||||||
#define HIDDEN __attribute__((VISIBILITY_HIDDEN))
|
|
||||||
// given foo, create a foo_direct for internal use
|
|
||||||
#define HIDDEN_ALIAS(x) extern __typeof(x) x##_direct __attribute__((alias(#x),VISIBILITY_HIDDEN))
|
|
||||||
|
|
||||||
// since gcc-2.5
|
// since gcc-2.5
|
||||||
#define NORETURN __attribute__((__noreturn__))
|
#define NORETURN __attribute__((__noreturn__))
|
||||||
|
56
ps/global.c
56
ps/global.c
@@ -348,6 +348,51 @@ void reset_global(void){
|
|||||||
wchan_is_number = 0;
|
wchan_is_number = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char archdefs[] =
|
||||||
|
#ifdef __alpha__
|
||||||
|
" alpha"
|
||||||
|
#endif
|
||||||
|
#ifdef __arm__
|
||||||
|
" arm"
|
||||||
|
#endif
|
||||||
|
#ifdef __hppa__
|
||||||
|
" hppa"
|
||||||
|
#endif
|
||||||
|
#ifdef __i386__
|
||||||
|
" i386"
|
||||||
|
#endif
|
||||||
|
#ifdef __ia64__
|
||||||
|
" ia64"
|
||||||
|
#endif
|
||||||
|
#ifdef __mc68000__
|
||||||
|
" mc68000"
|
||||||
|
#endif
|
||||||
|
#ifdef __mips64__
|
||||||
|
" mips64"
|
||||||
|
#endif
|
||||||
|
#ifdef __mips__
|
||||||
|
" mips"
|
||||||
|
#endif
|
||||||
|
#ifdef __powerpc__
|
||||||
|
" powerpc"
|
||||||
|
#endif
|
||||||
|
#ifdef __sh3__
|
||||||
|
" sh3"
|
||||||
|
#endif
|
||||||
|
#ifdef __sh__
|
||||||
|
" sh"
|
||||||
|
#endif
|
||||||
|
#ifdef __sparc__
|
||||||
|
" sparc"
|
||||||
|
#endif
|
||||||
|
#ifdef __sparc_v9__
|
||||||
|
" sparc_v9"
|
||||||
|
#endif
|
||||||
|
#ifdef __x86_64__
|
||||||
|
" x86_64"
|
||||||
|
#endif
|
||||||
|
"";
|
||||||
|
|
||||||
/*********** spew variables ***********/
|
/*********** spew variables ***********/
|
||||||
void self_info(void){
|
void self_info(void){
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@@ -379,8 +424,8 @@ void self_info(void){
|
|||||||
LINUX_VERSION_PATCH(linux_version_code)
|
LINUX_VERSION_PATCH(linux_version_code)
|
||||||
);
|
);
|
||||||
/* __libc_print_version(); */ /* how can we get the run-time version? */
|
/* __libc_print_version(); */ /* how can we get the run-time version? */
|
||||||
fprintf(stderr, "Compiled with: libc %d, internal version %d.%d\n\n",
|
fprintf(stderr, "Compiled with: glibc %d.%d, gcc %d.%d\n\n",
|
||||||
__GNU_LIBRARY__, __GLIBC__, __GLIBC_MINOR__
|
__GLIBC__, __GLIBC_MINOR__, __GNUC__, __GNUC_MINOR__
|
||||||
);
|
);
|
||||||
|
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@@ -399,6 +444,13 @@ void self_info(void){
|
|||||||
(int)(PAGE_SIZE), (int)(page_size)
|
(int)(PAGE_SIZE), (int)(page_size)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
fprintf(stderr,
|
||||||
|
"sizeof(proc_t)=%d sizeof(long)=%d sizeof(KLONG)=%d\n",
|
||||||
|
(int)sizeof(proc_t), (int)sizeof(long), (int)sizeof(KLONG)
|
||||||
|
);
|
||||||
|
|
||||||
|
fprintf(stderr, "archdefs:%s\n", archdefs);
|
||||||
|
|
||||||
open_psdb(namelist_file);
|
open_psdb(namelist_file);
|
||||||
fprintf(stderr,"namelist_file=\"%s\"\n",namelist_file?namelist_file:"<no System.map file>");
|
fprintf(stderr,"namelist_file=\"%s\"\n",namelist_file?namelist_file:"<no System.map file>");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user