
2015-07-02 21:18 GMT+09:00 Masahiro Yamada yamada.masahiro@socionext.com:
2015-07-02 8:39 GMT+09:00 Daniel Schwierzeck daniel.schwierzeck@gmail.com:
Am 02.07.2015 um 00:04 schrieb Albert ARIBAUD:
Hello Wolfgang,
On Wed, 01 Jul 2015 23:50:17 +0200, Wolfgang Denk wd@denx.de wrote:
Actually I think it is inherently wrong to enable CONFIG_USE_PRIVATE_LIBGCC by default.
This option is intended as a workaround for broken toolchains, until these get fixed. By enabling this by default, we miss do not notice the problems our tool chain has, and therefore these never get fixed, i. e. brokenness grows. This cannot be good.
CONFIG_USE_PRIVATE_LIBGCC should only be an emergency-opt-in, but never ever a default setting.
Well then, should we not revisit commits c3dd823 and 7bfd5ee, which enable CONFIG_USE_PRIVATE_LIBGCC for sh and mips respectively? Either we allow it by default for all architectures, or we forbid it by default for all architectures, but I don't like the idea of a heterogeneous per-arch default setting.
CONFIG_USE_PRIVATE_LIBGCC should be removed. If an architecture supports a private libgcc, then it should always use it. I think for U-Boot it is better and safer to have all code under control instead of pulling in external code from toolchains which are often somehow broken.
Speaking for MIPS we have boards with all combinations of Big Endian/Little Endian and Hard Float/Soft Float. You need an own libgcc binary for each FPU variant, but almost no toolchain supports this. Thus you need different toolchains for different boards. This is a PITA for users or developers who want to use buildman. Always using CONFIG_USE_PRIVATE_LIBGCC=yes was the only painless way so far. That is why we chose to enable CONFIG_USE_PRIVATE_LIBGCC by default.
BTW: Linux kernel or Barebox always use a private libgcc.
I agree with Daniel.
Instead of removing CONFIG_USE_PRIVATE_LIBGCC, I think it is better to "select" it by Kconfig.
(And rename it to CONFIG_HAVE_PRIVATE_LIBGCC in order to clearly indicate it is not a user-configurable but forced configuration.)
My bad. Daniel, you are right.
We already have CONFIG_HAVE_PRIVATE_LIBGCC. So, removing CONFIG_USE_PRIVATE_LIBGCC is OK.