retro16 / acsi2stm

Atari ST ACSI to SD card converter with a STM32
GNU General Public License v3.0
150 stars 34 forks source link

acsi2stm-4.10 fails to build when using official Arm GNU Toolchain V10.3-2021.10 #44

Closed TzOk83 closed 1 year ago

TzOk83 commented 1 year ago

As in title, 4.01 was compiling using the official Arm GNU Toolchain V10.3-2021.10, but 4.10 ends up with:

C:\Users\<User>\AppData\Local\Temp\ccUNI632.s: Assembler messages:
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:17: Warning: ignoring changed section attributes for .data
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:28: Warning: dwarf line number information for .data ignored
(...)
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:278: Warning: dwarf line number information for .data ignored
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8055: Error: leb128 operand is an undefined symbol: .LVU76
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8056: Error: leb128 operand is an undefined symbol: .LVU76
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8070: Error: leb128 operand is an undefined symbol: .LVU5
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8082: Error: leb128 operand is an undefined symbol: .LVU7
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8094: Error: leb128 operand is an undefined symbol: .LVU8
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8106: Error: leb128 operand is an undefined symbol: .LVU10
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8118: Error: leb128 operand is an undefined symbol: .LVU11
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8130: Error: leb128 operand is an undefined symbol: .LVU39
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8131: Error: leb128 operand is an undefined symbol: .LVU53
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8132: Error: leb128 operand is an undefined symbol: .LVU53
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8133: Error: leb128 operand is an undefined symbol: .LVU70
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8134: Error: leb128 operand is an undefined symbol: .LVU70
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8135: Error: leb128 operand is an undefined symbol: .LVU76
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8136: Error: leb128 operand is an undefined symbol: .LVU76
C:\Users\<User>\AppData\Local\Temp\ccUNI632.s:8137: Error: leb128 operand is an undefined symbol: .LVU77
In file included from D:\<User>\Documents\Arduino\acsi2stm-4.10\acsi2stm\Tos.h:23,
                 from D:\<User>\Documents\Arduino\acsi2stm-4.10\acsi2stm\GemDrive.h:23,
                 from D:\<User>\Documents\Arduino\acsi2stm-4.10\acsi2stm\acsi2stm.ino:23:
D:\<User>\Documents\Arduino\acsi2stm-4.10\acsi2stm\SysHook.h:105:3: warning: converting 'ToWord' to a base class 'Word' will never use a type conversion operator [-Wclass-conversion]
  105 |   operator Word() {
      |   ^~~~~~~~
D:\<User>\Documents\Arduino\acsi2stm-4.10\acsi2stm\SysHook.h:214:3: warning: converting 'ToLong' to a base class 'Long' will never use a type conversion operator [-Wclass-conversion]
  214 |   operator Long() {
      |   ^~~~~~~~

exit status 1

Compilation error: exit status 1

4.01 was complaining only about:

In file included from D:\<User>\Documents\Arduino\acsi2stm-4.01\acsi2stm\Tos.h:23,
                 from D:\<User>\Documents\Arduino\acsi2stm-4.01\acsi2stm\GemDrive.h:23,
                 from D:\<User>\Documents\Arduino\acsi2stm-4.01\acsi2stm\acsi2stm.ino:23:
D:\<User>\Documents\Arduino\acsi2stm-4.01\acsi2stm\SysHook.h:105:3: warning: converting 'ToWord' to a base class 'Word' will never use a type conversion operator [-Wclass-conversion]
  105 |   operator Word() {
      |   ^~~~~~~~
D:\<User>\Documents\Arduino\acsi2stm-4.01\acsi2stm\SysHook.h:214:3: warning: converting 'ToLong' to a base class 'Long' will never use a type conversion operator [-Wclass-conversion]
  214 |   operator Long() {
      |   ^~~~~~~~
TzOk83 commented 1 year ago

Ok, I revert that, V10.3 GCC will compile only if it was first compiled with V7 GCC. On a clean build, it will fail.