mirror of https://github.com/ARMmbed/mbed-os.git
microlib support: Fix build with Arm Compiler 6 and MicroLib
Building binaries with MicroLib and Arm compiler 6 has been failing because of a bug in Arm compiler 6. The compiler introduces a symbol, `__scanf_mbtowc`, which is not present in MicroLib C library. The present commit adds a weak reference to the symbol to allow a successful linkage. This is a temporary fix until the bug in the compiler is fixed. It should be removed after the compiler bug is fixed.pull/10704/head
parent
9cc1caa031
commit
e12889d8e1
|
@ -68,3 +68,20 @@ MBED_WEAK void __aeabi_assert(const char *expr, const char *file, int line)
|
||||||
{
|
{
|
||||||
mbed_assert_internal(expr, file, line);
|
mbed_assert_internal(expr, file, line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The below resolves the linker error generated by a bug in Arm Compiler 6
|
||||||
|
// When building with MicroLib, the compiler inadvertently introduces the
|
||||||
|
// _scanf_mbtowc symbol to the build. The code below provides a weak reference
|
||||||
|
// for the missing symbol
|
||||||
|
#include <stdio.h>
|
||||||
|
typedef int ScanfReadRec;
|
||||||
|
MBED_WEAK long int _scanf_mbtowc(
|
||||||
|
int ignored,
|
||||||
|
FILE *p,
|
||||||
|
ScanfReadRec *sr,
|
||||||
|
int *charmap,
|
||||||
|
int exact
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue