Tool/software:
I've done a lot of research on this issue, which appears from time to time, and the solution is always to ensure you are consisted with -mfloat-abi=hard -mfpu=fpv4-sp-d16 across all compilations and link steps -- I am and I still get the error. I was following the instructions in SLAU688.pdf included with the install.
After recent difficulties with CCS12.8.1.00005 on opensuse Tumbleweed, I decided to try building from the command line and I installed msp432-gcc-1.2.0.1-linux-x64-support-package-installer.run with simplelink_msp432p4_sdk_3_40_01_02.run. The compiler is arm-none-eabi-gcc (openSUSE 14.2.0-1.77) 14 20241119.
The Makefile for the examples is properly updated for the gcc in /usr/bin and the object files for the msp432p401_blinkingLED example build just fine. However, on link, the linking fails with "output/msp432p401_blinkingLED.o uses VFP register arguments, output/msp432p401_blinkingLED.out does not"
Both the CFLAGS and LDFLAGS properly have -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 so the floating point ABI and fpu are consistent between compile and link, but still the VFP error. The full make output is:
make DEVICE=MSP432P401R
============================================
Generating output/msp432p401_blinkingLED.o
/usr/bin/arm-none-eabi-gcc -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -D__MSP432P401R__ -DTARGET_IS_MSP432P4XX -Dgcc -g -gstrict-dwarf -Wall -ffunction-sections -fdata-sections -MD -std=c99 -I /opt/ti/arm/include/CMSIS -I /opt/ti/arm/include -I /usr/arm-none-eabi/include -c msp432p401_blinkingLED.c -o output/msp432p401_blinkingLED.o
============================================
Generating output/startup_msp432p401r_gcc.o
/usr/bin/arm-none-eabi-gcc -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -D__MSP432P401R__ -DTARGET_IS_MSP432P4XX -Dgcc -g -gstrict-dwarf -Wall -ffunction-sections -fdata-sections -MD -std=c99 -I /opt/ti/arm/include/CMSIS -I /opt/ti/arm/include -I /usr/arm-none-eabi/include -c startup_msp432p401r_gcc.c -o output/startup_msp432p401r_gcc.o
============================================
Generating output/system_msp432p401r.o
/usr/bin/arm-none-eabi-gcc -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -D__MSP432P401R__ -DTARGET_IS_MSP432P4XX -Dgcc -g -gstrict-dwarf -Wall -ffunction-sections -fdata-sections -MD -std=c99 -I /opt/ti/arm/include/CMSIS -I /opt/ti/arm/include -I /usr/arm-none-eabi/include -c system_msp432p401r.c -o output/system_msp432p401r.o
============================================
Linking objects and generating output binary
/usr/bin/arm-none-eabi-gcc -mcpu=cortex-m4 -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nosys.specs -mthumb -D__MSP432P401R__ -DTARGET_IS_MSP432P4XX -Dgcc -g -gstrict-dwarf -Wall -T/opt/ti/arm/include/msp432p401r.lds -l'c' -l'gcc' -l'nosys' output/msp432p401_blinkingLED.o output/startup_msp432p401r_gcc.o output/system_msp432p401r.o -o output/msp432p401_blinkingLED.out -I /opt/ti/arm/include/CMSIS -I /opt/ti/arm/include -I /usr/arm-none-eabi/include
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: /usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/lib/libc.a(libc_a-closer.o): in function `_close_r':
/home/abuild/rpmbuild/BUILD/cross-arm-none-eabi-newlib-4.4.0-build/newlib-cygwin/build-newlib/arm-none-eabi/newlib/../../../newlib/libc/reent/closer.c:47:(.text+0x18): warning: _close is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: /usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/lib/libc.a(libc_a-lseekr.o): in function `_lseek_r':
/home/abuild/rpmbuild/BUILD/cross-arm-none-eabi-newlib-4.4.0-build/newlib-cygwin/build-newlib/arm-none-eabi/newlib/../../../newlib/libc/reent/lseekr.c:49:(.text+0x24): warning: _lseek is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: /usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/lib/libc.a(libc_a-readr.o): in function `_read_r':
/home/abuild/rpmbuild/BUILD/cross-arm-none-eabi-newlib-4.4.0-build/newlib-cygwin/build-newlib/arm-none-eabi/newlib/../../../newlib/libc/reent/readr.c:49:(.text+0x24): warning: _read is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: /usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/lib/libc.a(libc_a-writer.o): in function `_write_r':
/home/abuild/rpmbuild/BUILD/cross-arm-none-eabi-newlib-4.4.0-build/newlib-cygwin/build-newlib/arm-none-eabi/newlib/../../../newlib/libc/reent/writer.c:49:(.text+0x24): warning: _write is not implemented and will always fail
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: error: output/msp432p401_blinkingLED.o uses VFP register arguments, output/msp432p401_blinkingLED.out does not
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file output/msp432p401_blinkingLED.o
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: error: output/startup_msp432p401r_gcc.o uses VFP register arguments, output/msp432p401_blinkingLED.out does not
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file output/startup_msp432p401r_gcc.o
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: error: output/system_msp432p401r.o uses VFP register arguments, output/msp432p401_blinkingLED.out does not
/usr/lib64/gcc/arm-none-eabi/14/../../../../arm-none-eabi/bin/ld: failed to merge target specific data of file output/system_msp432p401r.o
collect2: error: ld returned 1 exit status
make: *** [Makefile:82: output/msp432p401_blinkingLED.out] Error 1
In all the other links I researched the issue was part of the build was compiled for float-abi=soft leading to the use of VFP registers causing the error. (e.g.https://stackoverflow.com/a/47045487/3422102 and dot.o uses VFP register arguments, dot.out does not) That doesn't seem to be the case here. I'm unable to find a solution. Any help would be appreciated.