| Submitter | rongqing.li@windriver.com |
|---|---|
| Date | July 18, 2012, 2:02 a.m. |
| Message ID | <1342576941-11413-1-git-send-email-rongqing.li@windriver.com> |
| Download | mbox | patch |
| Permalink | /patch/32347/ |
| State | New |
| Headers | show |
Comments
Sorry, Please ignore this patch. I should send a update to add signed-off-by and Upstream-Status, not resend whole. -Roy On 2012?07?18? 10:02, rongqing.li@windriver.com wrote: > From: Roy.Li <rongqing.li@windriver.com> > > Fix [YOCTO 2726] > > C language has 3 distinct char types: > char > unsigned char > signed char > A char has the same range of values as signed char on X86, > but same as unsigned char on ARM which made Slang's typecast() > and array_sort() unable to work for char value on ARM, since > Slang is assuming "char" as "signed char". > > Now we change "char" as "signed char" explicitly in > util/mkslarith2.sl, and use it to regenerate src/slarith2.inc > > Signed-off-by: Roy.Li <rongqing.li@windriver.com> > --- > ...change-char-type-to-signed-char-in-macros.patch | 218 ++++++++++++++++++++ > meta/recipes-extended/slang/slang_2.2.4.bb | 3 +- > 2 files changed, 220 insertions(+), 1 deletions(-) > create mode 100644 meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch > > diff --git a/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch b/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch > new file mode 100644 > index 0000000..2ea1ffd > --- /dev/null > +++ b/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch > @@ -0,0 +1,218 @@ > +slang: change char type to signed char in macros > + > +C language has 3 distinct char types: > + char > + unsigned char > + signed char > +A char has the same range of values as signed char on X86, > +but same as unsigned char on ARM which made Slang's typecast() > +and array_sort() unable to work for char value on ARM, since > +Slang is assuming "char" as "signed char". > + > +Now we change "char" as "signed char" explicitly in > +util/mkslarith2.sl, and use it to regenerate src/slarith2.inc > + > +Upstream-Status: Submitted > +Signed-off-by: Roy.Li <rongqing.li@windriver.com> > +--- > + src/slarith2.inc | 72 ++++++++++++++++++++++++------------------------- > + src/util/mkslarith2.sl | 2 - > + 2 files changed, 37 insertions(+), 37 deletions(-) > + > +--- a/src/util/mkslarith2.sl > ++++ b/src/util/mkslarith2.sl > +@@ -1,7 +1,7 @@ > + #!/usr/bin/env slsh > + > + private variable CTypes = > +- ["char", "unsigned char", "short", "unsigned short", "int", "unsigned int", > ++ ["signed char", "unsigned char", "short", "unsigned short", "int", "unsigned int", > + "long", "unsigned long", "long long", "unsigned long long", > + "float", "double", "long double"]; > + private variable Is_Int_Type = > +--- a/src/slarith2.inc > ++++ b/src/slarith2.inc > +@@ -1,43 +1,43 @@ > + /* DO NOT EDIT -- this file was generated by src/util/mkslarith2.sl */ > +-/* ------------ char ---------- */ > +-DEFUN_1(copy_char_to_char,char,char) > ++/* ------------ signed char ---------- */ > ++DEFUN_1(copy_char_to_char,signed char,signed char) > + #define char_to_char NULL > + #define copy_char_to_uchar copy_char_to_char > + #define char_to_uchar NULL > +-DEFUN_1(copy_char_to_short,char,short) > ++DEFUN_1(copy_char_to_short,signed char,short) > + #define char_to_short NULL > +-DEFUN_1(copy_char_to_ushort,char,unsigned short) > ++DEFUN_1(copy_char_to_ushort,signed char,unsigned short) > + #define char_to_ushort NULL > +-DEFUN_1(copy_char_to_int,char,int) > +-DEFUN_2(char_to_int,char,int,copy_char_to_int) > +-DEFUN_1(copy_char_to_uint,char,unsigned int) > +-DEFUN_2(char_to_uint,char,unsigned int,copy_char_to_uint) > +-DEFUN_1(copy_char_to_long,char,long) > +-DEFUN_2(char_to_long,char,long,copy_char_to_long) > +-DEFUN_1(copy_char_to_ulong,char,unsigned long) > +-DEFUN_2(char_to_ulong,char,unsigned long,copy_char_to_ulong) > ++DEFUN_1(copy_char_to_int,signed char,int) > ++DEFUN_2(char_to_int,signed char,int,copy_char_to_int) > ++DEFUN_1(copy_char_to_uint,signed char,unsigned int) > ++DEFUN_2(char_to_uint,signed char,unsigned int,copy_char_to_uint) > ++DEFUN_1(copy_char_to_long,signed char,long) > ++DEFUN_2(char_to_long,signed char,long,copy_char_to_long) > ++DEFUN_1(copy_char_to_ulong,signed char,unsigned long) > ++DEFUN_2(char_to_ulong,signed char,unsigned long,copy_char_to_ulong) > + #if defined(HAVE_LONG_LONG) > +-DEFUN_1(copy_char_to_llong,char,long long) > +-DEFUN_2(char_to_llong,char,long long,copy_char_to_llong) > ++DEFUN_1(copy_char_to_llong,signed char,long long) > ++DEFUN_2(char_to_llong,signed char,long long,copy_char_to_llong) > + #endif /* defined(HAVE_LONG_LONG) */ > + #if defined(HAVE_LONG_LONG) > +-DEFUN_1(copy_char_to_ullong,char,unsigned long long) > +-DEFUN_2(char_to_ullong,char,unsigned long long,copy_char_to_ullong) > ++DEFUN_1(copy_char_to_ullong,signed char,unsigned long long) > ++DEFUN_2(char_to_ullong,signed char,unsigned long long,copy_char_to_ullong) > + #endif /* defined(HAVE_LONG_LONG) */ > + #if SLANG_HAS_FLOAT > +-DEFUN_1(copy_char_to_float,char,float) > +-DEFUN_2(char_to_float,char,float,copy_char_to_float) > ++DEFUN_1(copy_char_to_float,signed char,float) > ++DEFUN_2(char_to_float,signed char,float,copy_char_to_float) > + #endif /* SLANG_HAS_FLOAT */ > + #if SLANG_HAS_FLOAT > +-DEFUN_1(copy_char_to_double,char,double) > +-DEFUN_2(char_to_double,char,double,copy_char_to_double) > ++DEFUN_1(copy_char_to_double,signed char,double) > ++DEFUN_2(char_to_double,signed char,double,copy_char_to_double) > + #endif /* SLANG_HAS_FLOAT */ > + #if defined(HAVE_LONG_DOUBLE) > +-DEFUN_1(copy_char_to_ldouble,char,long double) > +-DEFUN_2(char_to_ldouble,char,long double,copy_char_to_ldouble) > ++DEFUN_1(copy_char_to_ldouble,signed char,long double) > ++DEFUN_2(char_to_ldouble,signed char,long double,copy_char_to_ldouble) > + #endif /* defined(HAVE_LONG_DOUBLE) */ > + #if SLANG_HAS_FLOAT > +-TO_DOUBLE_FUN(char_to_one_double,char) > ++TO_DOUBLE_FUN(char_to_one_double,signed char) > + #endif > + > + /* ------------ unsigned char ---------- */ > +@@ -82,7 +82,7 @@ TO_DOUBLE_FUN(uchar_to_one_double,unsign > + #endif > + > + /* ------------ short ---------- */ > +-DEFUN_1(copy_short_to_char,short,char) > ++DEFUN_1(copy_short_to_char,short,signed char) > + #define short_to_char NULL > + DEFUN_1(copy_short_to_uchar,short,unsigned char) > + #define short_to_uchar NULL > +@@ -123,7 +123,7 @@ TO_DOUBLE_FUN(short_to_one_double,short) > + #endif > + > + /* ------------ unsigned short ---------- */ > +-DEFUN_1(copy_ushort_to_char,unsigned short,char) > ++DEFUN_1(copy_ushort_to_char,unsigned short,signed char) > + #define ushort_to_char NULL > + DEFUN_1(copy_ushort_to_uchar,unsigned short,unsigned char) > + #define ushort_to_uchar NULL > +@@ -164,7 +164,7 @@ TO_DOUBLE_FUN(ushort_to_one_double,unsig > + #endif > + > + /* ------------ int ---------- */ > +-DEFUN_1(copy_int_to_char,int,char) > ++DEFUN_1(copy_int_to_char,int,signed char) > + #define int_to_char NULL > + DEFUN_1(copy_int_to_uchar,int,unsigned char) > + #define int_to_uchar NULL > +@@ -205,7 +205,7 @@ TO_DOUBLE_FUN(int_to_one_double,int) > + #endif > + > + /* ------------ unsigned int ---------- */ > +-DEFUN_1(copy_uint_to_char,unsigned int,char) > ++DEFUN_1(copy_uint_to_char,unsigned int,signed char) > + #define uint_to_char NULL > + DEFUN_1(copy_uint_to_uchar,unsigned int,unsigned char) > + #define uint_to_uchar NULL > +@@ -246,7 +246,7 @@ TO_DOUBLE_FUN(uint_to_one_double,unsigne > + #endif > + > + /* ------------ long ---------- */ > +-DEFUN_1(copy_long_to_char,long,char) > ++DEFUN_1(copy_long_to_char,long,signed char) > + #define long_to_char NULL > + DEFUN_1(copy_long_to_uchar,long,unsigned char) > + #define long_to_uchar NULL > +@@ -287,7 +287,7 @@ TO_DOUBLE_FUN(long_to_one_double,long) > + #endif > + > + /* ------------ unsigned long ---------- */ > +-DEFUN_1(copy_ulong_to_char,unsigned long,char) > ++DEFUN_1(copy_ulong_to_char,unsigned long,signed char) > + #define ulong_to_char NULL > + DEFUN_1(copy_ulong_to_uchar,unsigned long,unsigned char) > + #define ulong_to_uchar NULL > +@@ -329,7 +329,7 @@ TO_DOUBLE_FUN(ulong_to_one_double,unsign > + > + /* ------------ long long ---------- */ > + #if defined(HAVE_LONG_LONG) > +-DEFUN_1(copy_llong_to_char,long long,char) > ++DEFUN_1(copy_llong_to_char,long long,signed char) > + #define llong_to_char NULL > + DEFUN_1(copy_llong_to_uchar,long long,unsigned char) > + #define llong_to_uchar NULL > +@@ -372,7 +372,7 @@ TO_DOUBLE_FUN(llong_to_one_double,long l > + > + /* ------------ unsigned long long ---------- */ > + #if defined(HAVE_LONG_LONG) > +-DEFUN_1(copy_ullong_to_char,unsigned long long,char) > ++DEFUN_1(copy_ullong_to_char,unsigned long long,signed char) > + #define ullong_to_char NULL > + DEFUN_1(copy_ullong_to_uchar,unsigned long long,unsigned char) > + #define ullong_to_uchar NULL > +@@ -415,7 +415,7 @@ TO_DOUBLE_FUN(ullong_to_one_double,unsig > + > + /* ------------ float ---------- */ > + #if SLANG_HAS_FLOAT > +-DEFUN_1(copy_float_to_char,float,char) > ++DEFUN_1(copy_float_to_char,float,signed char) > + #define float_to_char NULL > + DEFUN_1(copy_float_to_uchar,float,unsigned char) > + #define float_to_uchar NULL > +@@ -458,7 +458,7 @@ TO_DOUBLE_FUN(float_to_one_double,float) > + > + /* ------------ double ---------- */ > + #if SLANG_HAS_FLOAT > +-DEFUN_1(copy_double_to_char,double,char) > ++DEFUN_1(copy_double_to_char,double,signed char) > + #define double_to_char NULL > + DEFUN_1(copy_double_to_uchar,double,unsigned char) > + #define double_to_uchar NULL > +@@ -501,7 +501,7 @@ TO_DOUBLE_FUN(double_to_one_double,doubl > + > + /* ------------ long double ---------- */ > + #if defined(HAVE_LONG_DOUBLE) > +-DEFUN_1(copy_ldouble_to_char,long double,char) > ++DEFUN_1(copy_ldouble_to_char,long double,signed char) > + #define ldouble_to_char NULL > + DEFUN_1(copy_ldouble_to_uchar,long double,unsigned char) > + #define ldouble_to_uchar NULL > +@@ -545,7 +545,7 @@ TO_DOUBLE_FUN(ldouble_to_one_double,long > + #if SLANG_HAS_FLOAT > + static To_Double_Fun_Table_Type To_Double_Fun_Table [MAX_ARITHMETIC_TYPES] = > + { > +- {sizeof(char), char_to_one_double}, > ++ {sizeof(signed char), char_to_one_double}, > + {sizeof(unsigned char), uchar_to_one_double}, > + {sizeof(short), short_to_one_double}, > + {sizeof(unsigned short), ushort_to_one_double}, > +@@ -583,7 +583,7 @@ static To_Double_Fun_Table_Type To_Doubl > + > + static Binary_Matrix_Type Binary_Matrix [MAX_ARITHMETIC_TYPES][MAX_ARITHMETIC_TYPES] = > + { > +- /* char */ > ++ /* signed char */ > + { > + {(FVOID_STAR)copy_char_to_char, char_to_char}, > + {(FVOID_STAR)copy_char_to_uchar, char_to_uchar}, > diff --git a/meta/recipes-extended/slang/slang_2.2.4.bb b/meta/recipes-extended/slang/slang_2.2.4.bb > index f17bc0f..72dd99f 100644 > --- a/meta/recipes-extended/slang/slang_2.2.4.bb > +++ b/meta/recipes-extended/slang/slang_2.2.4.bb > @@ -10,7 +10,7 @@ to recode S-Lang procedures in C if you need to." > HOMEPAGE = "http://www.jedsoft.org/slang/" > SECTION = "libs" > DEPENDS = "pcre" > -PR = "r8" > +PR = "r9" > > LICENSE = "GPLv2" > LIC_FILES_CHKSUM = "file://COPYING;md5=a52a18a472d4f7e45479b06563717c02" > @@ -19,6 +19,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a52a18a472d4f7e45479b06563717c02" > SRC_URI = "ftp://space.mit.edu/pub/davis/slang/v2.2/slang-${PV}.tar.bz2 \ > file://rpathfix.patch \ > " > +SRC_URI_append_arm = " file://change-char-type-to-signed-char-in-macros.patch" > > inherit autotools > >
Patch
diff --git a/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch b/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch new file mode 100644 index 0000000..2ea1ffd --- /dev/null +++ b/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch @@ -0,0 +1,218 @@ +slang: change char type to signed char in macros + +C language has 3 distinct char types: + char + unsigned char + signed char +A char has the same range of values as signed char on X86, +but same as unsigned char on ARM which made Slang's typecast() +and array_sort() unable to work for char value on ARM, since +Slang is assuming "char" as "signed char". + +Now we change "char" as "signed char" explicitly in +util/mkslarith2.sl, and use it to regenerate src/slarith2.inc + +Upstream-Status: Submitted +Signed-off-by: Roy.Li <rongqing.li@windriver.com> +--- + src/slarith2.inc | 72 ++++++++++++++++++++++++------------------------- + src/util/mkslarith2.sl | 2 - + 2 files changed, 37 insertions(+), 37 deletions(-) + +--- a/src/util/mkslarith2.sl ++++ b/src/util/mkslarith2.sl +@@ -1,7 +1,7 @@ + #!/usr/bin/env slsh + + private variable CTypes = +- ["char", "unsigned char", "short", "unsigned short", "int", "unsigned int", ++ ["signed char", "unsigned char", "short", "unsigned short", "int", "unsigned int", + "long", "unsigned long", "long long", "unsigned long long", + "float", "double", "long double"]; + private variable Is_Int_Type = +--- a/src/slarith2.inc ++++ b/src/slarith2.inc +@@ -1,43 +1,43 @@ + /* DO NOT EDIT -- this file was generated by src/util/mkslarith2.sl */ +-/* ------------ char ---------- */ +-DEFUN_1(copy_char_to_char,char,char) ++/* ------------ signed char ---------- */ ++DEFUN_1(copy_char_to_char,signed char,signed char) + #define char_to_char NULL + #define copy_char_to_uchar copy_char_to_char + #define char_to_uchar NULL +-DEFUN_1(copy_char_to_short,char,short) ++DEFUN_1(copy_char_to_short,signed char,short) + #define char_to_short NULL +-DEFUN_1(copy_char_to_ushort,char,unsigned short) ++DEFUN_1(copy_char_to_ushort,signed char,unsigned short) + #define char_to_ushort NULL +-DEFUN_1(copy_char_to_int,char,int) +-DEFUN_2(char_to_int,char,int,copy_char_to_int) +-DEFUN_1(copy_char_to_uint,char,unsigned int) +-DEFUN_2(char_to_uint,char,unsigned int,copy_char_to_uint) +-DEFUN_1(copy_char_to_long,char,long) +-DEFUN_2(char_to_long,char,long,copy_char_to_long) +-DEFUN_1(copy_char_to_ulong,char,unsigned long) +-DEFUN_2(char_to_ulong,char,unsigned long,copy_char_to_ulong) ++DEFUN_1(copy_char_to_int,signed char,int) ++DEFUN_2(char_to_int,signed char,int,copy_char_to_int) ++DEFUN_1(copy_char_to_uint,signed char,unsigned int) ++DEFUN_2(char_to_uint,signed char,unsigned int,copy_char_to_uint) ++DEFUN_1(copy_char_to_long,signed char,long) ++DEFUN_2(char_to_long,signed char,long,copy_char_to_long) ++DEFUN_1(copy_char_to_ulong,signed char,unsigned long) ++DEFUN_2(char_to_ulong,signed char,unsigned long,copy_char_to_ulong) + #if defined(HAVE_LONG_LONG) +-DEFUN_1(copy_char_to_llong,char,long long) +-DEFUN_2(char_to_llong,char,long long,copy_char_to_llong) ++DEFUN_1(copy_char_to_llong,signed char,long long) ++DEFUN_2(char_to_llong,signed char,long long,copy_char_to_llong) + #endif /* defined(HAVE_LONG_LONG) */ + #if defined(HAVE_LONG_LONG) +-DEFUN_1(copy_char_to_ullong,char,unsigned long long) +-DEFUN_2(char_to_ullong,char,unsigned long long,copy_char_to_ullong) ++DEFUN_1(copy_char_to_ullong,signed char,unsigned long long) ++DEFUN_2(char_to_ullong,signed char,unsigned long long,copy_char_to_ullong) + #endif /* defined(HAVE_LONG_LONG) */ + #if SLANG_HAS_FLOAT +-DEFUN_1(copy_char_to_float,char,float) +-DEFUN_2(char_to_float,char,float,copy_char_to_float) ++DEFUN_1(copy_char_to_float,signed char,float) ++DEFUN_2(char_to_float,signed char,float,copy_char_to_float) + #endif /* SLANG_HAS_FLOAT */ + #if SLANG_HAS_FLOAT +-DEFUN_1(copy_char_to_double,char,double) +-DEFUN_2(char_to_double,char,double,copy_char_to_double) ++DEFUN_1(copy_char_to_double,signed char,double) ++DEFUN_2(char_to_double,signed char,double,copy_char_to_double) + #endif /* SLANG_HAS_FLOAT */ + #if defined(HAVE_LONG_DOUBLE) +-DEFUN_1(copy_char_to_ldouble,char,long double) +-DEFUN_2(char_to_ldouble,char,long double,copy_char_to_ldouble) ++DEFUN_1(copy_char_to_ldouble,signed char,long double) ++DEFUN_2(char_to_ldouble,signed char,long double,copy_char_to_ldouble) + #endif /* defined(HAVE_LONG_DOUBLE) */ + #if SLANG_HAS_FLOAT +-TO_DOUBLE_FUN(char_to_one_double,char) ++TO_DOUBLE_FUN(char_to_one_double,signed char) + #endif + + /* ------------ unsigned char ---------- */ +@@ -82,7 +82,7 @@ TO_DOUBLE_FUN(uchar_to_one_double,unsign + #endif + + /* ------------ short ---------- */ +-DEFUN_1(copy_short_to_char,short,char) ++DEFUN_1(copy_short_to_char,short,signed char) + #define short_to_char NULL + DEFUN_1(copy_short_to_uchar,short,unsigned char) + #define short_to_uchar NULL +@@ -123,7 +123,7 @@ TO_DOUBLE_FUN(short_to_one_double,short) + #endif + + /* ------------ unsigned short ---------- */ +-DEFUN_1(copy_ushort_to_char,unsigned short,char) ++DEFUN_1(copy_ushort_to_char,unsigned short,signed char) + #define ushort_to_char NULL + DEFUN_1(copy_ushort_to_uchar,unsigned short,unsigned char) + #define ushort_to_uchar NULL +@@ -164,7 +164,7 @@ TO_DOUBLE_FUN(ushort_to_one_double,unsig + #endif + + /* ------------ int ---------- */ +-DEFUN_1(copy_int_to_char,int,char) ++DEFUN_1(copy_int_to_char,int,signed char) + #define int_to_char NULL + DEFUN_1(copy_int_to_uchar,int,unsigned char) + #define int_to_uchar NULL +@@ -205,7 +205,7 @@ TO_DOUBLE_FUN(int_to_one_double,int) + #endif + + /* ------------ unsigned int ---------- */ +-DEFUN_1(copy_uint_to_char,unsigned int,char) ++DEFUN_1(copy_uint_to_char,unsigned int,signed char) + #define uint_to_char NULL + DEFUN_1(copy_uint_to_uchar,unsigned int,unsigned char) + #define uint_to_uchar NULL +@@ -246,7 +246,7 @@ TO_DOUBLE_FUN(uint_to_one_double,unsigne + #endif + + /* ------------ long ---------- */ +-DEFUN_1(copy_long_to_char,long,char) ++DEFUN_1(copy_long_to_char,long,signed char) + #define long_to_char NULL + DEFUN_1(copy_long_to_uchar,long,unsigned char) + #define long_to_uchar NULL +@@ -287,7 +287,7 @@ TO_DOUBLE_FUN(long_to_one_double,long) + #endif + + /* ------------ unsigned long ---------- */ +-DEFUN_1(copy_ulong_to_char,unsigned long,char) ++DEFUN_1(copy_ulong_to_char,unsigned long,signed char) + #define ulong_to_char NULL + DEFUN_1(copy_ulong_to_uchar,unsigned long,unsigned char) + #define ulong_to_uchar NULL +@@ -329,7 +329,7 @@ TO_DOUBLE_FUN(ulong_to_one_double,unsign + + /* ------------ long long ---------- */ + #if defined(HAVE_LONG_LONG) +-DEFUN_1(copy_llong_to_char,long long,char) ++DEFUN_1(copy_llong_to_char,long long,signed char) + #define llong_to_char NULL + DEFUN_1(copy_llong_to_uchar,long long,unsigned char) + #define llong_to_uchar NULL +@@ -372,7 +372,7 @@ TO_DOUBLE_FUN(llong_to_one_double,long l + + /* ------------ unsigned long long ---------- */ + #if defined(HAVE_LONG_LONG) +-DEFUN_1(copy_ullong_to_char,unsigned long long,char) ++DEFUN_1(copy_ullong_to_char,unsigned long long,signed char) + #define ullong_to_char NULL + DEFUN_1(copy_ullong_to_uchar,unsigned long long,unsigned char) + #define ullong_to_uchar NULL +@@ -415,7 +415,7 @@ TO_DOUBLE_FUN(ullong_to_one_double,unsig + + /* ------------ float ---------- */ + #if SLANG_HAS_FLOAT +-DEFUN_1(copy_float_to_char,float,char) ++DEFUN_1(copy_float_to_char,float,signed char) + #define float_to_char NULL + DEFUN_1(copy_float_to_uchar,float,unsigned char) + #define float_to_uchar NULL +@@ -458,7 +458,7 @@ TO_DOUBLE_FUN(float_to_one_double,float) + + /* ------------ double ---------- */ + #if SLANG_HAS_FLOAT +-DEFUN_1(copy_double_to_char,double,char) ++DEFUN_1(copy_double_to_char,double,signed char) + #define double_to_char NULL + DEFUN_1(copy_double_to_uchar,double,unsigned char) + #define double_to_uchar NULL +@@ -501,7 +501,7 @@ TO_DOUBLE_FUN(double_to_one_double,doubl + + /* ------------ long double ---------- */ + #if defined(HAVE_LONG_DOUBLE) +-DEFUN_1(copy_ldouble_to_char,long double,char) ++DEFUN_1(copy_ldouble_to_char,long double,signed char) + #define ldouble_to_char NULL + DEFUN_1(copy_ldouble_to_uchar,long double,unsigned char) + #define ldouble_to_uchar NULL +@@ -545,7 +545,7 @@ TO_DOUBLE_FUN(ldouble_to_one_double,long + #if SLANG_HAS_FLOAT + static To_Double_Fun_Table_Type To_Double_Fun_Table [MAX_ARITHMETIC_TYPES] = + { +- {sizeof(char), char_to_one_double}, ++ {sizeof(signed char), char_to_one_double}, + {sizeof(unsigned char), uchar_to_one_double}, + {sizeof(short), short_to_one_double}, + {sizeof(unsigned short), ushort_to_one_double}, +@@ -583,7 +583,7 @@ static To_Double_Fun_Table_Type To_Doubl + + static Binary_Matrix_Type Binary_Matrix [MAX_ARITHMETIC_TYPES][MAX_ARITHMETIC_TYPES] = + { +- /* char */ ++ /* signed char */ + { + {(FVOID_STAR)copy_char_to_char, char_to_char}, + {(FVOID_STAR)copy_char_to_uchar, char_to_uchar}, diff --git a/meta/recipes-extended/slang/slang_2.2.4.bb b/meta/recipes-extended/slang/slang_2.2.4.bb index f17bc0f..72dd99f 100644 --- a/meta/recipes-extended/slang/slang_2.2.4.bb +++ b/meta/recipes-extended/slang/slang_2.2.4.bb @@ -10,7 +10,7 @@ to recode S-Lang procedures in C if you need to." HOMEPAGE = "http://www.jedsoft.org/slang/" SECTION = "libs" DEPENDS = "pcre" -PR = "r8" +PR = "r9" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=a52a18a472d4f7e45479b06563717c02" @@ -19,6 +19,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a52a18a472d4f7e45479b06563717c02" SRC_URI = "ftp://space.mit.edu/pub/davis/slang/v2.2/slang-${PV}.tar.bz2 \ file://rpathfix.patch \ " +SRC_URI_append_arm = " file://change-char-type-to-signed-char-in-macros.patch" inherit autotools