compiler-explorer icon indicating copy to clipboard operation
compiler-explorer copied to clipboard

ARM GCC 6.3.0 standard libraries missing

Open LdB-ECM opened this issue 8 years ago • 6 comments

On both the 32bit and 64 bit versions you can't use the standard library #include <stdint.h>

It will throw a compiler error

LdB-ECM avatar Sep 06 '17 17:09 LdB-ECM

Can you give a link that demonstrates this please? https://godbolt.org/g/3nbwy4 seems to work.

mattgodbolt avatar Sep 06 '17 17:09 mattgodbolt

Oh really strange it's the processor selection flags that makes stdint.h stop work

-O3 -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s

Place it in your link options

On 7/09/2017 1:51 AM, Matt Godbolt wrote:

Can you give a link that demonstrates this please? https://godbolt.org/g/3nbwy4 seems to work.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mattgodbolt/compiler-explorer/issues/514#issuecomment-327562515, or mute the thread https://github.com/notifications/unsubscribe-auth/AcuWVdxOl5BzZv91rvUlFTpNf1RNKd3kks5sftuugaJpZM4POua3.

LdB-ECM avatar Sep 08 '17 05:09 LdB-ECM

Very odd; I can only imagine I'm missing something. If you know anything about how these things are built, I'd appreciate the help. ARM GCC 6.3.0 is built with this script using crosstool inside a docker container.

mattgodbolt avatar Sep 08 '17 13:09 mattgodbolt

Okay I did some playing around .. the problem is

-mfloat-abi=hard

So we don't have any hard float libraries.

looking in your config

https://github.com/mattgodbolt/compiler-explorer-image/blob/master/gcc-cross/build/new/arm-6.3.0.config

you have these

CT_ARCH_FLOAT_HW is not set

CT_ARCH_FLOAT_SOFTFP is not set

CT_ARCH_FLOAT_SW is not set

CT_TARGET_CFLAGS="" CT_TARGET_LDFLAGS="" CT_ARCH_FLOAT="auto"

If you look at 5.4 its different

CT_ARCH_FLOAT_AUTO is not set

CT_ARCH_FLOAT_HW=y

CT_ARCH_FLOAT_SOFTFP is not set

CT_ARCH_FLOAT_SW is not set

CT_TARGET_CFLAGS="" CT_TARGET_LDFLAGS="" CT_ARCH_FLOAT="hard"

You should be able to have both options on to give both soft and hard libraries. The default will be hard floats on because that is what is set with ARCH.

CT_ARCH_FLOAT_AUTO is not set

CT_ARCH_FLOAT_HW=y CT_ARCH_FLOAT_SOFTFP=y

CT_ARCH_FLOAT_SW is not set

CT_TARGET_CFLAGS="" CT_TARGET_LDFLAGS="" CT_ARCH_FLOAT="hard"

On 8/09/2017 9:34 PM, Matt Godbolt wrote:

Very odd; I can only imagine I'm missing something. If you know anything about how these things are built, I'd appreciate the help. ARM GCC 6.3.0 is built with this script https://github.com/mattgodbolt/compiler-explorer-image/blob/master/gcc-cross/build/build.sh using crosstool https://crosstool-ng.github.io/ inside a docker container.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mattgodbolt/compiler-explorer/issues/514#issuecomment-328104688, or mute the thread https://github.com/notifications/unsubscribe-auth/AcuWVaGbIebi6p7SLySlkZTl8HMdTSP-ks5sgUJugaJpZM4POua3.

LdB-ECM avatar Sep 08 '17 16:09 LdB-ECM

That's great: thanks!

On Fri, Sep 8, 2017 at 11:31 AM Leon de Boer [email protected] wrote:

Okay I did some playing around .. the problem is

-mfloat-abi=hard

So we don't have any hard float libraries.

looking in your config

https://github.com/mattgodbolt/compiler-explorer-image/blob/master/gcc-cross/build/new/arm-6.3.0.config

you have these

CT_ARCH_FLOAT_HW is not set

CT_ARCH_FLOAT_SOFTFP is not set

CT_ARCH_FLOAT_SW is not set

CT_TARGET_CFLAGS="" CT_TARGET_LDFLAGS="" CT_ARCH_FLOAT="auto"

If you look at 5.4 its different

CT_ARCH_FLOAT_AUTO is not set

CT_ARCH_FLOAT_HW=y

CT_ARCH_FLOAT_SOFTFP is not set

CT_ARCH_FLOAT_SW is not set

CT_TARGET_CFLAGS="" CT_TARGET_LDFLAGS="" CT_ARCH_FLOAT="hard"

You should be able to have both options on to give both soft and hard libraries. The default will be hard floats on because that is what is set with ARCH.

CT_ARCH_FLOAT_AUTO is not set

CT_ARCH_FLOAT_HW=y CT_ARCH_FLOAT_SOFTFP=y

CT_ARCH_FLOAT_SW is not set

CT_TARGET_CFLAGS="" CT_TARGET_LDFLAGS="" CT_ARCH_FLOAT="hard"

On 8/09/2017 9:34 PM, Matt Godbolt wrote:

Very odd; I can only imagine I'm missing something. If you know anything about how these things are built, I'd appreciate the help. ARM GCC 6.3.0 is built with this script < https://github.com/mattgodbolt/compiler-explorer-image/blob/master/gcc-cross/build/build.sh>

using crosstool https://crosstool-ng.github.io/ inside a docker container.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub < https://github.com/mattgodbolt/compiler-explorer/issues/514#issuecomment-328104688>,

or mute the thread < https://github.com/notifications/unsubscribe-auth/AcuWVaGbIebi6p7SLySlkZTl8HMdTSP-ks5sgUJugaJpZM4POua3 .

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/mattgodbolt/compiler-explorer/issues/514#issuecomment-328151930, or mute the thread https://github.com/notifications/unsubscribe-auth/AAmsdexq_wE5D1-lCj5w7-ciV6yEl2JYks5sgWvPgaJpZM4POua3 .

mattgodbolt avatar Sep 08 '17 16:09 mattgodbolt

Demonstration link: https://godbolt.org/z/sG1YGozqW

Broken on:

  • [ ] 4.6.4
  • [ ] 6.3.0
  • [ ] 6.4.0
  • [ ] 7.3.0
  • [ ] 8.2.0 (needs -mcpu=corterx-a75 or similar e.g. https://gcc.godbolt.org/z/deGx1dfof )
  • [x] 8.2.0 (wince; but that seems to be a hard limit in the compiler itself)

Works on:

  • 4.5.4
  • 5.4
  • 5.4.1 (none)
  • 7.2.1 (none)
  • 7.5.0
  • 8.3.1
  • 8.5.0
  • 9.2.1 (none)
  • 9.3.0
  • 9.4.0
  • 9.5.0
  • 10.2.0
  • 10.2.1 (none)
  • ....seemingly everything else after that, I clicked around and couldn't find one but didn't have time to check each and write them down.

mattgodbolt avatar Jan 28 '25 16:01 mattgodbolt