Hi, there are still a couple of problems with my patch: The build is broken for the following targets: 1) *linux* targets that do not include config/linux.h in their tm.h (e.g alpha-linux, ppc64-linux etc). For them we have:
../../../../gcc/gcc/config/linux-android.c: In function ‘bool linux_android_libc_has_function(function_class)’: ../../../../gcc/gcc/config/linux-android.c:40:7: error: ‘OPTION_BIONIC’ was not declared in this scope if (OPTION_BIONIC) ^ make[2]: *** [linux-android.o] Error 1 This is adressed in the changes of config/linux-android.c: linux_libc, LIBC_GLIBC and LIBC_BIONIC seem to be declared for all *linux* targets. 2) *uclinux* targets that include config/linux.h. For *uclinux* we do not use linux-protos.h, and therefore linux_android_libc_has_function is not declared there. I don't want to add aditional tmake_file, tm_p_file and extra_objs, so I added explicit define of TARGET_LIBC_HAS_FUNCTION as no_c99_libc_has_function for those targets. I'm sorry for that. The following patch cured my build of those targets; it is also preserving the initial presence of c99. There were plenty of targets that were changed by my patch, I hope this time I didn't miss anything. Is it ok? diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e27be2..02679f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2013-08-21 Alexander Ivchenko <alexander.ivche...@intel.com> + + * config/linux-android.c (linux_android_libc_has_function): Fix + checks for libc. + * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as + no_c99_libc_has_function. + * config/c6x/uclinux-elf.h: Ditto. + * config/lm32/uclinux-elf.h: Ditto. + * config/m68k/uclinux.h: Ditto. + * config/moxie/uclinux.h: Ditto. + 2013-08-21 Joern Rennecke <joern.renne...@embecosm.com> * reload.h (struct reg_equivs): Rename to .. diff --git a/gcc/config/bfin/uclinux.h b/gcc/config/bfin/uclinux.h index ca0f4ee..63cba99 100644 --- a/gcc/config/bfin/uclinux.h +++ b/gcc/config/bfin/uclinux.h @@ -44,3 +44,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define TARGET_SUPPORTS_SYNC_CALLS 1 #define SUBTARGET_FDPIC_NOT_SUPPORTED + +#undef TARGET_LIBC_HAS_FUNCTION +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function diff --git a/gcc/config/c6x/uclinux-elf.h b/gcc/config/c6x/uclinux-elf.h index 5d61f4d..fa0937e 100644 --- a/gcc/config/c6x/uclinux-elf.h +++ b/gcc/config/c6x/uclinux-elf.h @@ -62,3 +62,5 @@ : "0" (_beg), "b" (_end), "b" (_scno)); \ } +#undef TARGET_LIBC_HAS_FUNCTION +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function diff --git a/gcc/config/linux-android.c b/gcc/config/linux-android.c index 4a4b48d..e9d9e9a 100644 --- a/gcc/config/linux-android.c +++ b/gcc/config/linux-android.c @@ -35,9 +35,9 @@ linux_android_has_ifunc_p (void) bool linux_android_libc_has_function (enum function_class fn_class) { - if (OPTION_GLIBC) + if (linux_libc == LIBC_GLIBC) return true; - if (OPTION_BIONIC) + if (linux_libc == LIBC_BIONIC) if (fn_class == function_c94 || fn_class == function_c99_misc || fn_class == function_sincos) diff --git a/gcc/config/lm32/uclinux-elf.h b/gcc/config/lm32/uclinux-elf.h index 3a556d7..a5e8163 100644 --- a/gcc/config/lm32/uclinux-elf.h +++ b/gcc/config/lm32/uclinux-elf.h @@ -77,3 +77,5 @@ #undef CC1_SPEC #define CC1_SPEC "%{G*} %{!fno-PIC:-fPIC}" +#undef TARGET_LIBC_HAS_FUNCTION +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function diff --git a/gcc/config/m68k/uclinux.h b/gcc/config/m68k/uclinux.h index 8d74312..b1af7d2 100644 --- a/gcc/config/m68k/uclinux.h +++ b/gcc/config/m68k/uclinux.h @@ -67,3 +67,6 @@ along with GCC; see the file COPYING3. If not see sections. */ #undef M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P #define M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P 1 + +#undef TARGET_LIBC_HAS_FUNCTION +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function diff --git a/gcc/config/moxie/uclinux.h b/gcc/config/moxie/uclinux.h index 498037e..85c65f2 100644 --- a/gcc/config/moxie/uclinux.h +++ b/gcc/config/moxie/uclinux.h @@ -37,3 +37,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --wrap=mmap --wrap=munmap --wrap=alloca\ %{fmudflapth: --wrap=pthread_create\ }} %{fmudflap|fmudflapth: --wrap=main}" + +#undef TARGET_LIBC_HAS_FUNCTION +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function thanks, Alexander 2013/8/21 Rainer Orth <r...@cebitec.uni-bielefeld.de>: > Alexander Ivchenko <aivch...@gmail.com> writes: > >> Hi Joseph, thanks for your comments. >> >> I updated the patch: >> >> 1) The function name as a second argument in libc_has_function target >> hook was removed - was not usefull so far. >> 2) By using contrib/config-list.mk (thanks for the hint - great tool!) >> and analysing tm.h files and what is included in them I have checked >> 197 targets. That analysis includes all issues that you raised in your >> comments - everything is fixed now. I don't like that sometimes we >> have to redefine the version of the hook back to the default one due >> to a poisoning of including elfos.h, but I couldn't find a better >> solution - I commented all those cases. >> >> Regtesting is in progress now. I have already tested the patch before, >> so I don't expect to see any new problems. >> >> If all the tests pass, is the patch OK for trunk? > > Unfortunately, this patch broke Solaris 10+ bootstrap; it cannot have > been tested properly there: > > In file included from ./tm.h:27:0, > from /vol/gcc/src/hg/trunk/local/gcc/gencheck.c:23: > /vol/gcc/src/hg/trunk/local/gcc/config/sol2-10.h:21:4: error: "/*" within > comment [-Werror=comment] > /* /* Solaris 10 has the float and long double forms of math functions. > ^ > cc1plus: all warnings being treated as errors > make[3]: *** [build/gencheck.o] Error 1 > > Fixed as follows; bootstrapped without regressions on > i386-pc-solaris2.10, installed on mainline. > > Rainer > > > 2013-08-21 Rainer Orth <r...@cebitec.uni-bielefeld.de> > > * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest > comment. > > > > -- > ----------------------------------------------------------------------------- > Rainer Orth, Center for Biotechnology, Bielefeld University >