diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0628f49ff028eddeb5fc4e767641de07b0bafea3..738afb621b20670d4bc6169d686efd5930a8e82b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2017-01-17 Joe Seymour <joe.s@somniumtech.com> + + * gcc.target/msp430/mul_f5_muldef.c: New test. + 2017-01-17 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/79004 diff --git a/gcc/testsuite/gcc.target/msp430/mul_f5_muldef.c b/gcc/testsuite/gcc.target/msp430/mul_f5_muldef.c new file mode 100644 index 0000000000000000000000000000000000000000..da1b1bb983cd743d39ae3884b56782a2ebfeb53c --- /dev/null +++ b/gcc/testsuite/gcc.target/msp430/mul_f5_muldef.c @@ -0,0 +1,15 @@ +/* { dg-do link } */ +/* { dg-options "-mhwmult=f5series" } */ + +/* This program used to result in a multiple definition error: + +libmul_f5.a(lib2hw_mul_f5.o): In function `__mulhi2_f5': +(.text.__mulhi2_f5+0x0): multiple definition of `__mspabi_mpyi' +libgcc.a(mpy.o):mpy.c:(.text.__mulhi3+0x0): first defined here */ + +#include <stdio.h> + +int main (void) +{ + printf ("%d", 430); +} diff --git a/libgcc/config/msp430/t-msp430 b/libgcc/config/msp430/t-msp430 index 107eb3ded6c370b4a99b98fa275ef90ccde22cc9..668b9437dc255c85061af84cf0a89a86ef466e66 100644 --- a/libgcc/config/msp430/t-msp430 +++ b/libgcc/config/msp430/t-msp430 @@ -30,7 +30,6 @@ LIB2ADD = \ $(srcdir)/config/msp430/lib2mul.c \ $(srcdir)/config/msp430/lib2shift.c \ $(srcdir)/config/msp430/epilogue.S \ - $(srcdir)/config/msp430/mpy.c \ $(srcdir)/config/msp430/slli.S \ $(srcdir)/config/msp430/srai.S \ $(srcdir)/config/msp430/srli.S \ @@ -43,6 +42,9 @@ LIB2ADD = \ HOST_LIBGCC2_CFLAGS += -Os -ffunction-sections -fdata-sections -mhwmult=none +mpy.o: $(srcdir)/config/msp430/mpy.c + $(gcc_compile) $< -c + lib2_mul_none.o: $(srcdir)/config/msp430/lib2mul.c $(gcc_compile) $< -c -DMUL_NONE @@ -58,7 +60,7 @@ lib2hw_mul_32.o: $(srcdir)/config/msp430/lib2hw_mul.S lib2hw_mul_f5.o: $(srcdir)/config/msp430/lib2hw_mul.S $(gcc_compile) $< -c -DMUL_F5 -libmul_none.a: lib2_mul_none.o +libmul_none.a: lib2_mul_none.o mpy.o $(AR_CREATE_FOR_TARGET) $@ $(filter %.o,$^) libmul_16.a: lib2hw_mul_16.o lib2_mul_16bit.o