Unless specified, your XC8 compiler is using 24-bit floats with a 16-bit mantissa. Floats and doubles are the same size, unless overridden, and long doubles are just doubles.
Hence: try -fno-short-double
From Microchip documentation:
Floating-Point Data Types
The MPLAB XC8 compiler supports 32- and 24-bit floating-point types, being an IEEE 754 32-bit format, or a truncated, 24-bit form of this, respectively. Floating-point sizes of 32-bits will be automatically set when you select C99 compliance.
[...]
For both float and double values, the 24-bit format is the default. The options -fshort-float and -fshort-double can also be used to specify this explicitly. The 32-bit format is used for double values if -fno-short-double option is used and for float values if -fno-short-float is used.
How you tell the compiler you want this depends on how you're invoking the compiler; it's different on the command line and with the MPLAB development environment. See Microchip "Invoking the compiler"