This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: List of all symbols not defined anywhere in GCC
- From: Andreas Jaeger <aj at suse dot de>
- To: Zack Weinberg <zack at codesourcery dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Sat, 07 Jun 2003 14:26:30 +0200
- Subject: Re: List of all symbols not defined anywhere in GCC
- References: <87y90ykv29.fsf@egil.codesourcery.com>
Hi Zack,
Zack Weinberg <zack@codesourcery.com> writes:
> The subject line is not entirely accurate. What this is, is a list of
> all symbols which appear in #if/#ifdef/#ifndef lines somewhere in the
> source code, but are not defined anywhere in the source code itself.
> All the source files generated from machine descriptions were included
> in the process. There are still a moderate number of false positives,
> where the definition comes from configure, the Makefile, the host's
> system headers, or the target compiler's predefines. However, with a
> bit of manual checking this should be a useful list for people
> interested in pruning down the source tree. I'll be going on a
> chainsaw spree when I get back from Canada at the beginning of June,
> but I encourage y'all to beat me to it.
I've removed all those that I felt confident with and currently do one
bootstrap with my final patches. Your scripts still gives a lot false
positives, and I'll add comments below. Note that I didn't check each
single macro, I just point out some of the problems below.
Please use your chainsaw for the rest ;-)
m68k and ip2k use a lot of undefined macros, but I didn't touch these
targets.
> [...]
>
> CRTSTUFFS_O
> CRTSTUFFT_O
> CRT_BEGIN
> CRT_END
> CRT_FINI
> CRT_GET_RFIB_TEXT
> CRT_INIT
These are defined via gcc -D in Makefile.in
> DEBUG
> DEBUG_BINDING_LEVELS
> DEBUG_CP_BINDING_LEVELS
> DEBUG_JAVA_BINDING_LEVELS
> DEBUG_SPECS
I think we should leave most of the debug stuff in.
> ENABLE_CHECKING
> ENABLE_GC_ALWAYS_COLLECT
> ENABLE_GC_CHECKING
> ENABLE_JC1_CHECKING
> ENABLE_MALLOC_CHECKING
> ENABLE_NLS
> ENABLE_RCSP
> ENABLE_RTL_CHECKING
> ENABLE_RTL_FLAG_CHECKING
> ENABLE_SHARED_LIBGCC
> ENABLE_TREE_CHECKING
> ENABLE_VALGRIND_CHECKING
> ENABLE_WIN32_REGISTRY
Defined by configure.
> FFEBLD_BLANK_
> FFECOM_itemHOOK
> FFESTD_F90
> FFETARGET_isENFORCED_MAIN_NAME
> FFETARGET_okCHARACTER2
> FFETARGET_okCHARACTER3
> FFETARGET_okCHARACTER4
> FFETARGET_okCHARACTER5
> FFETARGET_okCHARACTER6
> FFETARGET_okCHARACTER7
> FFETARGET_okCHARACTER8
> FFETARGET_okCOMPLEX4
> FFETARGET_okCOMPLEX5
> FFETARGET_okCOMPLEX6
> FFETARGET_okCOMPLEX7
> FFETARGET_okCOMPLEX8
> FFETARGET_okINTEGER5
> FFETARGET_okINTEGER6
> FFETARGET_okINTEGER7
> FFETARGET_okINTEGER8
> FFETARGET_okLOGICAL5
> FFETARGET_okLOGICAL6
> FFETARGET_okLOGICAL7
> FFETARGET_okLOGICAL8
> FFETARGET_okREAL4
> FFETARGET_okREAL5
> FFETARGET_okREAL6
> FFETARGET_okREAL7
> FFETARGET_okREAL8
I'll look into these now.
> HAVE_ALLOCA_H
> HAVE_ALPHASORT
> HAVE_...
All these look like defined by configure.
> IN_GCC
> IN_GLIBCPP_V3
> IN_LIBGCC2
> IN_RTS
> IN_TARGET_LIBS
Defined via gcc -D ?
> L__gcc_bcmp
> L_...
needed by libgcc2.c
> SIGABRT
> SIGALRM
> SIGBUS
> SIGFPE
> SIGHUP
> SIGILL
> SIGIOT
> SIGPIPE
> SIGQUIT
> SIGSEGV
>From <signal.h>
> USE_AS_TRADITIONAL_FORMAT
> USE_COLLECT2
> USE_COMPONENT_REF
> USE_GNULIBC_1
> USE_INCLUDED_LIBINTL
> USE_LIBUNWIND_EXCEPTIONS
> USE_MALLOC
> USE_ONEXIT
> USE_ORDERING_ATTRIBUTE
Should come from configure.
> _ABI64
> _...
I didn't check any of these.
> apollo
> errno_h
> getrlimit
> hp300
> hpux
> isalpha
> lint
> mc68020
> mc68030
> mc68040
> mc68060
> mcpu32
> setrlimit
> sgi
> sparc
> stStruct
> stdin
> stdio_h
> stdlib_h
> stdout
> strsignal
> sun
> sys_stat_h
and didn't check these either,
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj