I can indeed reproduce that bug with latest gcc-5-branch either by compiling the below testcase, or by building ChibiOS 3.0.4 as described in https://answers.launchpad.net/gcc-arm-embedded/+question/280242
Best regards.
(In reply to acrsofter from comment #3) > reproduce steps: > > [foo.c] > > int _umh(int i) > { > return i+1; > } > > int weaks(int i) __attribute__((weak, alias("_umh"))); > > int main() > { > return weaks(10); > } > > > [bar.c] > > int weaks(int i) > { > return i+1; > } > > > now compile: > > gcc -c bar.c > > gcc -flto -c foo.c > > gcc -flto -o elf bar.o foo.o > > > note: > > bar compiled without flt > but rest with flt > > > now at linking stage booms > at line > > gcc_assert (c != SYMBOL_EXTERNAL > && (c == SYMBOL_DUPLICATE || !symbol_partitioned_p (node))); > > in lto/lto-partition.c > > =============================================================== > > same code compiled without lto ok > > gcc 4.9.3 not affected > but 5.3.0 affected and latest (gcc-6-20160214) affected
I can indeed reproduce that bug with latest gcc-5-branch either by compiling the below testcase, or by building ChibiOS 3.0.4 as described in https:/ /answers. launchpad. net/gcc- arm-embedded/ +question/ 280242
Best regards.
(In reply to acrsofter from comment #3) _((weak, alias("_umh"))); partitioned_ p (node))); ======= ======= ======= ======= ======= ======= ======= =======
> reproduce steps:
>
> [foo.c]
>
> int _umh(int i)
> {
> return i+1;
> }
>
> int weaks(int i) __attribute_
>
> int main()
> {
> return weaks(10);
> }
>
>
> [bar.c]
>
> int weaks(int i)
> {
> return i+1;
> }
>
>
> now compile:
>
> gcc -c bar.c
>
> gcc -flto -c foo.c
>
> gcc -flto -o elf bar.o foo.o
>
>
> note:
>
> bar compiled without flt
> but rest with flt
>
>
> now at linking stage booms
> at line
>
> gcc_assert (c != SYMBOL_EXTERNAL
> && (c == SYMBOL_DUPLICATE || !symbol_
>
> in lto/lto-partition.c
>
> =======
>
> same code compiled without lto ok
>
> gcc 4.9.3 not affected
> but 5.3.0 affected and latest (gcc-6-20160214) affected