diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog index 939e00ec3f2..e46ec032658 100644 --- a/libdecnumber/ChangeLog +++ b/libdecnumber/ChangeLog @@ -1,3 +1,20 @@ +2008-01-25 Janis Johnson + + * Makefile.in (libdecnumber_a_SOURCES): List Symbols headers. + * decCommonSymbols.h: New file. + * decCommon.c: Include it. + * decDPDSymbols.h: New file. + * decDPD.h: Include it. + * decNumberLocal.h: Include the two new files. + * decContextSymbols.h (DECPOWERS, DECSTICKYTAB): New. + * decNumberSymbols.h (LNnn, d2utable): New. + * dpd/decimal32Symbols.h (COMBEXP, COMBMSD, DPD2BIN, BIN2DPD): New. + * dpd/decimal64Symbols.h (COMBEXP, COMBMSD, DPD2BIN, BIN2DPD): New. + * dpd/decimal128Symbols.h (COMBEXP, COMBMSD, DPD2BIN, BIN2DPD): New. + * dpd/decimal32.c: Remove redefine of DPD2BIN, BIN2DPD. + * dpd/decimal64.c: Ditto. + * dpd/decimal128.c: Ditto. + 2007-11-26 Thiago Jung Bauermann * Makefile.in (decimal32.o): Prepend $(srcdir) to dependencies diff --git a/libdecnumber/Makefile.in b/libdecnumber/Makefile.in index 7e0b6acfd54..00b16b297dd 100644 --- a/libdecnumber/Makefile.in +++ b/libdecnumber/Makefile.in @@ -65,9 +65,10 @@ libdecnumber_a_OBJS = decNumber.o decContext.o \ libdecnumber_a_SOURCES = decContext.c decContext.h decDPD.h \ decNumber.c decNumber.h decNumberLocal.h \ - dpd/decimal128.c dpd/decimal128.h \ - dpd/decimal32.c dpd/decimal32.h \ - dpd/decimal64.c dpd/decimal64.h \ + decContextSymbols.h decDPDSymbols.h decNumberSymbols.h \ + dpd/decimal128.c dpd/decimal128.h dpd/decimal128Symbols.h \ + dpd/decimal32.c dpd/decimal32.h dpd/decimal32Symbols.h \ + dpd/decimal64.c dpd/decimal64.h dpd/decimal64Symbols.h \ bid/decimal128.c bid/decimal128.h \ bid/decimal32.c bid/decimal32.h \ bid/decimal64.c bid/decimal64.h diff --git a/libdecnumber/decCommon.c b/libdecnumber/decCommon.c index 84e1b2ad530..fa16e792e66 100644 --- a/libdecnumber/decCommon.c +++ b/libdecnumber/decCommon.c @@ -50,6 +50,8 @@ /* OR) or the rounding mode read; all other fields are ignored and */ /* untouched. */ +#include "decCommonSymbols.h" + /* names for simpler testing and default context */ #if DECPMAX==7 #define SINGLE 1 diff --git a/libdecnumber/decContextSymbols.h b/libdecnumber/decContextSymbols.h index 38830a916dc..46460536597 100644 --- a/libdecnumber/decContextSymbols.h +++ b/libdecnumber/decContextSymbols.h @@ -17,6 +17,8 @@ #define decContextTestSavedStatus __decContextTestSavedStatus #define decContextTestStatus __decContextTestStatus #define decContextZeroStatus __decContextZeroStatus +#define DECPOWERS __decPOWERS +#define DECSTICKYTAB __decSTICKYTAB #endif #endif diff --git a/libdecnumber/decDPD.h b/libdecnumber/decDPD.h index 8e0347c6aa8..a4710d64391 100644 --- a/libdecnumber/decDPD.h +++ b/libdecnumber/decDPD.h @@ -34,7 +34,9 @@ /* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */ /* For details, see: http://www2.hursley.ibm.com/decimal/DPDecimal.html */ -/* */ + +#include "decDPDSymbols.h" + /* This include file defines several DPD and BCD conversion tables: */ /* */ /* uint16_t BCD2DPD[2458]; -- BCD -> DPD (0x999 => 2457) */ diff --git a/libdecnumber/decNumberLocal.h b/libdecnumber/decNumberLocal.h index 891a0841c89..c07e8cd6ef4 100644 --- a/libdecnumber/decNumberLocal.h +++ b/libdecnumber/decNumberLocal.h @@ -100,6 +100,7 @@ extern const uByte DECSTICKYTAB[10]; /* re-round digits if sticky */ extern const uInt DECPOWERS[10]; /* powers of ten table */ /* The following are included from decDPD.h */ +#include "decDPDSymbols.h" extern const uShort DPD2BIN[1024]; /* DPD -> 0-999 */ extern const uShort BIN2DPD[1000]; /* 0-999 -> DPD */ extern const uInt DPD2BINK[1024]; /* DPD -> 0-999000 */ @@ -325,6 +326,7 @@ #define DFISSNAN(df) ((DFWORD(df, 0)&0x7e000000)==0x7e000000) /* Shared lookup tables */ +#include "decCommonSymbols.h" extern const uInt DECCOMBMSD[64]; /* Combination field -> MSD */ extern const uInt DECCOMBFROM[48]; /* exp+msd -> Combination */ diff --git a/libdecnumber/decNumberSymbols.h b/libdecnumber/decNumberSymbols.h index e638a070b1c..93558961bcd 100644 --- a/libdecnumber/decNumberSymbols.h +++ b/libdecnumber/decNumberSymbols.h @@ -64,6 +64,8 @@ #define decNumberVersion __decNumberVersion #define decNumberXor __decNumberXor #define decNumberZero __decNumberZero +#define LNnn __decLNnn +#define d2utable __decd2utable #endif #endif diff --git a/libdecnumber/dpd/decimal128.c b/libdecnumber/dpd/decimal128.c index 6aa98b5a21d..0e32ceb181c 100644 --- a/libdecnumber/dpd/decimal128.c +++ b/libdecnumber/dpd/decimal128.c @@ -49,10 +49,6 @@ #include "decimal128.h" /* our primary include */ /* Utility routines and tables [in decimal64.c] */ -/* DPD2BIN and the reverse are renamed to prevent link-time conflict */ -/* if decQuad is also built in the same executable */ -#define DPD2BIN DPD2BINx -#define BIN2DPD BIN2DPDx extern const uInt COMBEXP[32], COMBMSD[32]; extern const uShort DPD2BIN[1024]; extern const uShort BIN2DPD[1000]; /* [not used] */ diff --git a/libdecnumber/dpd/decimal128Symbols.h b/libdecnumber/dpd/decimal128Symbols.h index da9d76beaf6..b30687c2b4b 100644 --- a/libdecnumber/dpd/decimal128Symbols.h +++ b/libdecnumber/dpd/decimal128Symbols.h @@ -11,6 +11,16 @@ #define decimal128ToEngString __decimal128ToEngString #define decimal128ToNumber __decimal128ToNumber #define decimal128ToString __decimal128ToString +#define COMBEXP __decnnCOMBEXP +#define COMBMSD __decnnCOMBMSD + +/* DPD2BIN and BIN2DPD are used in support for decimal32/decimal64/decimal128 + and also in support for decSingle/decDouble/decQuad. Rename them in case + both types of support are used in the same executable. */ +#undef DPD2BIN +#define DPD2BIN __decnnDPD2BIN +#undef BIN2DPD +#define BIN2DPD __decnnBIN2DPD #endif #endif diff --git a/libdecnumber/dpd/decimal32.c b/libdecnumber/dpd/decimal32.c index 692c2f70ecb..42bddf172af 100644 --- a/libdecnumber/dpd/decimal32.c +++ b/libdecnumber/dpd/decimal32.c @@ -49,10 +49,6 @@ #include "decimal32.h" /* our primary include */ /* Utility tables and routines [in decimal64.c] */ -/* DPD2BIN and the reverse are renamed to prevent link-time conflict */ -/* if decQuad is also built in the same executable */ -#define DPD2BIN DPD2BINx -#define BIN2DPD BIN2DPDx extern const uInt COMBEXP[32], COMBMSD[32]; extern const uShort DPD2BIN[1024]; extern const uShort BIN2DPD[1000]; diff --git a/libdecnumber/dpd/decimal32Symbols.h b/libdecnumber/dpd/decimal32Symbols.h index de119346c4c..c4aa74fdfd3 100644 --- a/libdecnumber/dpd/decimal32Symbols.h +++ b/libdecnumber/dpd/decimal32Symbols.h @@ -11,6 +11,16 @@ #define decimal32ToEngString __decimal32ToEngString #define decimal32ToNumber __decimal32ToNumber #define decimal32ToString __decimal32ToString +#define COMBEXP __decnnCOMBEXP +#define COMBMSD __decnnCOMBMSD + +/* DPD2BIN and BIN2DPD are used in support for decimal32/decimal64/decimal128 + and also in support for decSingle/decDouble/decQuad. Rename them in case + both types of support are used in the same executable. */ +#undef DPD2BIN +#define DPD2BIN __decnnDPD2BIN +#undef BIN2DPD +#define BIN2DPD __decnnBIN2DPD #endif #endif diff --git a/libdecnumber/dpd/decimal64.c b/libdecnumber/dpd/decimal64.c index 359214e5dbe..c3617c46c08 100644 --- a/libdecnumber/dpd/decimal64.c +++ b/libdecnumber/dpd/decimal64.c @@ -49,10 +49,6 @@ #include "decimal64.h" /* our primary include */ /* Utility routines and tables [in decimal64.c]; externs for C++ */ -/* DPD2BIN and the reverse are renamed to prevent link-time conflict */ -/* if decQuad is also built in the same executable */ -#define DPD2BIN DPD2BINx -#define BIN2DPD BIN2DPDx extern const uInt COMBEXP[32], COMBMSD[32]; extern const uShort DPD2BIN[1024]; extern const uShort BIN2DPD[1000]; diff --git a/libdecnumber/dpd/decimal64Symbols.h b/libdecnumber/dpd/decimal64Symbols.h index cf965bf5bd8..efb64463817 100644 --- a/libdecnumber/dpd/decimal64Symbols.h +++ b/libdecnumber/dpd/decimal64Symbols.h @@ -11,6 +11,16 @@ #define decimal64ToEngString __decimal64ToEngString #define decimal64ToNumber __decimal64ToNumber #define decimal64ToString __decimal64ToString +#define COMBEXP __decnnCOMBEXP +#define COMBMSD __decnnCOMBMSD + +/* DPD2BIN and BIN2DPD are used in support for decimal32/decimal64/decimal128 + and also in support for decSingle/decDouble/decQuad. Rename them in case + both types of support are used in the same executable. */ +#undef DPD2BIN +#define DPD2BIN __decnnDPD2BIN +#undef BIN2DPD +#define BIN2DPD __decnnBIN2DPD #endif #endif