h8300-elf: Incorrect value of UINT_MAX for -mh -mint32 target .
J. Johnston
jjohnstn@redhat.com
Mon Dec 16 14:44:00 GMT 2002
Kazu Hirata wrote:
> Hi Jeff,
>
>
>>I assume that __H8300__ was meant to be added to the H3800 macros
>>below - correct? It has been removed from the old test but not
>>added to the new code.
>
>
> Correct. Thank you for pointing that out. What about the patch
> below? It collects all of the H8/300 code into one block.
>
Patch applied. Thanks. I would like to create newlib-1.11.0 in the next
couple of days. Can you comment on Venky's sim patch?
If the sim changes will be likely to be accepted by gdb, then I would
like to make his changes part of that up-coming release.
-- Jeff J.
> Kazu Hirata
>
> Index: config.h
> ===================================================================
> RCS file: /cvs/src/src/newlib/libc/include/sys/config.h,v
> retrieving revision 1.34
> diff -c -5 -r1.34 config.h
> *** config.h 11 Oct 2002 10:28:30 -0000 1.34
> --- config.h 16 Dec 2002 21:26:37 -0000
> ***************
> *** 2,25 ****
> #define __SYS_CONFIG_H__
>
> #include <machine/ieeefp.h> /* floating point macros */
>
> /* exceptions first */
> ! #if defined(__H8300__) || defined(__H8500__) || defined (__H8300H__) || defined(__W65__) || defined (__H8300S__)
> #define __SMALL_BITFIELDS
> /* ??? This conditional is true for the h8500 and the w65, defining H8300
> in those cases probably isn't the right thing to do. */
> #define H8300 1
> #endif
>
> /* 16 bit integer machines */
> ! #if defined(__Z8001__) || defined(__Z8002__) || defined(__H8300__) || defined(__H8500__) || defined(__W65__) || defined (__H8300H__) || defined (__H8300S__) || defined (__mn10200__) || defined (__AVR__)
>
> #undef INT_MAX
> #undef UINT_MAX
> #define INT_MAX 32767
> #define UINT_MAX 65535
> #endif
>
> #ifdef __W65__
> #define __SMALL_BITFIELDS
> #endif
> --- 2,34 ----
> #define __SYS_CONFIG_H__
>
> #include <machine/ieeefp.h> /* floating point macros */
>
> /* exceptions first */
> ! #if defined(__H8500__) || defined(__W65__)
> #define __SMALL_BITFIELDS
> /* ??? This conditional is true for the h8500 and the w65, defining H8300
> in those cases probably isn't the right thing to do. */
> #define H8300 1
> #endif
>
> /* 16 bit integer machines */
> ! #if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__)
>
> #undef INT_MAX
> #undef UINT_MAX
> #define INT_MAX 32767
> #define UINT_MAX 65535
> + #endif
> +
> + #if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__)
> + #define __SMALL_BITFIELDS
> + #define H8300 1
> + #undef INT_MAX
> + #undef UINT_MAX
> + #define INT_MAX __INT_MAX__
> + #define UINT_MAX (__INT_MAX__ * 2U + 1)
> #endif
>
> #ifdef __W65__
> #define __SMALL_BITFIELDS
> #endif
More information about the Newlib
mailing list