Ignore:
Timestamp:
2013-07-10T08:58:49Z (12 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
3908355, 4c53333
Parents:
30c1b75 (diff), 98abd40 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Extending POSIX library

Merge from lp:~vojtech-horky/helenos/gcc-port.

This is work-in-progress merge from branch aimed at bringing GCC to run
inside HelenOS.

The most notable change is dealing with the name clashes in libposix and
libc. For ported applications, the libposix headers looks as normal
POSIX headers and there is no need to do preprocessor-based renaming inside
the ported application. The renaming is done inside object files instead.
See revision 1745 in lp:~vojtech-horky/helenos/gcc-port [1] for more
detailed explanation.
The solution is definitely not perfect but shall deal with the naming
conflicts in much safer manner than using the redefines.

There were some other changes as well, mostly small ones.

  • Add some functions, some as ToDo ones (i.e. empty implementation).
  • Add more POSIX headers, split some existing.

[1] http://bazaar.launchpad.net/~vojtech-horky/helenos/gcc-port/revision/1745

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/posix/include/posix/float.h

    r30c1b75 rc8bb1633  
    6161        #undef FLT_RADIX
    6262        #define FLT_RADIX __FLT_RADIX__
     63#else
     64/* For something else than GCC, following definitions are provided.
     65 * They are intentionally guarded by the given macro to ensure that anyone
     66 * who wants them states this explicitly.
     67 *
     68 * The values are the ones GCC prints when compiled on i686 Linux.
     69 *
     70 * WARNING: the values are not accurate (especially the long double ones)!
     71 *
     72 */
     73#ifdef FLOAT_H_YES_I_REALLY_WANT_LIMITS
     74/* float limits */
     75#define FLT_MIN 1.1754943508222875079687365372222456778186655567720875215087517062784172594547271728515625e-38
     76#define FLT_MAX 340282346638528859811704183484516925440
     77
     78/* double limits */
     79#define DBL_MIN 2.2250738585072013830902327173324040642192159804623318305533274168872044348139181958542831590125110205640673397310358110051524341615534601088560123853777188211307779935320023304796101474425836360719216e-308
     80#define DBL_MAX 1.7976931348623157081452742373170435679807056752584499659891747680315726078002853876058955863276687817154045895351438246423432132688946418276846754670353751698604991057655128207624549009038932894407587e+308
     81
     82/* long double limits */
     83#define LDBL_MIN 3.3621031431120935062626778173217526025980793448464712401088272298087426993907289670430927063650562228625019066688234732270901114717276781407474941951906317291667263914849985862188944930687409323125832e-4932L
     84#define LDBL_MAX 1.1897314953572317650212638530309702051690633222946242004403237338917370055229707226164102903365288828535456978074955773144274431536702884341981255738537436786735932007069732632019159182829615243655295e+4932L
     85
     86/* epsilons */
     87#define FLT_EPSILON 1.1920928955078125e-07
     88#define DBL_EPSILON 2.220446049250313080847263336181640625e-16
     89#define LDBL_EPSILON 1.08420217248550443400745280086994171142578125e-19L
     90
     91/* float radix */
     92#define FLT_RADIX 2
     93
     94/* mantisa */
     95#define FLT_MANT_DIG 24
     96#define DBL_MANT_DIG 53
     97#define LDBL_MANT_DIG 64
     98
     99/* exponents */
     100#define DBL_MIN_EXP -1021
     101#define DBL_MAX_EXP 1024
     102
    63103#endif
     104
     105#endif /* __GNUC__ */
    64106
    65107#endif /* POSIX_FLOAT_H_ */
Note: See TracChangeset for help on using the changeset viewer.