How to use printf floating-point value correctly with newlib

Dear Sir,

  How to use printf floating-point value correctly with newlib ?

  I am using gcc version 7.1.1 20170707 (Linaro GCC 7.1-2017.08).

  I try to print floating-point value but always get incorrec value on output.

  Below is the example:

#include <stdlib.h>
#include <stdio.h>

// declaration of 'extern' functions

__attribute__((noreturn)) int main(void)
{
    printf("\nDS-5 ARMv8 Startup Example, using Linaro bare-metal GCC\n\n");
    double testfloat = 19.546785;
    printf("%f\n", testfloat);

}

 Output is always "-19.546785".

 Do you have any recommnedation about this issue ?

 Thank you for your help.