Attempt to fix rhbz#1307633 build for i686

Apply patches
https://bugzilla.redhat.com/attachment.cgi?id=1131224
https://bugzilla.redhat.com/attachment.cgi?id=1131225
minus the general cleanup split out.
This commit is contained in:
Raphael Groner 2016-03-01 16:51:37 +01:00 committed by Eike Rathke
parent 81987aeb79
commit ccebf13043
2 changed files with 154 additions and 3 deletions

View File

@ -0,0 +1,128 @@
--- icu/source/common/udata.orig 2016-02-28 08:21:34.766455512 +0100
+++ icu/source/common/udata.cpp 2016-02-28 08:21:56.526493756 +0100
@@ -101,7 +101,7 @@ static UDataMemory *udata_findCachedData
* that they really need, reducing the size of binaries that take advantage
* of this.
*/
-static UDataMemory *gCommonICUDataArray[10] = { NULL }; // Access protected by icu global mutex.
+static UDataMemory *gCommonICUDataArray[32] = { NULL }; // Access protected by icu global mutex.
static u_atomic_int32_t gHaveTriedToLoadCommonData = ATOMIC_INT32_T_INITIALIZER(0); // See extendICUData().
@@ -114,7 +114,7 @@ static UDataFileAccess gDataFileAccess
static UBool U_CALLCONV
udata_cleanup(void)
{
- int32_t i;
+ uint32_t i;
if (gCommonDataCache) { /* Delete the cache of user data mappings. */
uhash_close(gCommonDataCache); /* Table owns the contents, and will delete them. */
@@ -135,7 +135,7 @@ static UBool U_CALLCONV
findCommonICUDataByName(const char *inBasename)
{
UBool found = FALSE;
- int32_t i;
+ uint32_t i;
UDataMemory *pData = udata_findCachedData(inBasename);
if (pData == NULL)
@@ -165,7 +165,7 @@ setCommonICUData(UDataMemory *pData,
UErrorCode *pErr)
{
UDataMemory *newCommonData = UDataMemory_createNewInstance(pErr);
- int32_t i;
+ uint32_t i;
UBool didUpdate = FALSE;
if (U_FAILURE(*pErr)) {
return FALSE;
@@ -318,7 +318,7 @@ static UDataMemory *udata_findCachedData
static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UErrorCode *pErr) {
DataCacheElement *newElement;
const char *baseName;
- int32_t nameLen;
+ uint32_t nameLen;
UHashtable *htable;
DataCacheElement *oldValue = NULL;
UErrorCode subErr = U_ZERO_ERROR;
@@ -343,7 +343,7 @@ static UDataMemory *udata_cacheDataItem(
UDatamemory_assign(newElement->item, item);
baseName = findBasename(path);
- nameLen = (int32_t)uprv_strlen(baseName);
+ nameLen = (uint32_t)uprv_strlen(baseName);
newElement->name = (char *)uprv_malloc(nameLen+1);
if (newElement->name == NULL) {
*pErr = U_MEMORY_ALLOCATION_ERROR;
@@ -456,13 +456,13 @@ UDataPathIterator::UDataPathIterator(con
/** Item **/
basename = findBasename(item);
- basenameLen = (int32_t)uprv_strlen(basename);
+ basenameLen = (uint32_t)uprv_strlen(basename);
/** Item path **/
if(basename == item) {
nextPath = path;
} else {
- itemPath.append(item, (int32_t)(basename-item), *pErrorCode);
+ itemPath.append(item, (uint32_t)(basename-item), *pErrorCode);
nextPath = itemPath.data();
}
#ifdef UDATA_DEBUG
@@ -519,16 +519,16 @@ const char *UDataPathIterator::next(UErr
if(nextPath == itemPath.data()) { /* we were processing item's path. */
nextPath = path; /* start with regular path next tm. */
- pathLen = (int32_t)uprv_strlen(currentPath);
+ pathLen = (uint32_t)uprv_strlen(currentPath);
} else {
/* fix up next for next time */
nextPath = uprv_strchr(currentPath, U_PATH_SEP_CHAR);
if(nextPath == NULL) {
/* segment: entire path */
- pathLen = (int32_t)uprv_strlen(currentPath);
+ pathLen = (uint32_t)uprv_strlen(currentPath);
} else {
/* segment: until next segment */
- pathLen = (int32_t)(nextPath - currentPath);
+ pathLen = (uint32_t)(nextPath - currentPath);
/* skip divider */
nextPath ++;
}
@@ -672,7 +672,7 @@ openCommonData(const char *path,
if(gCommonICUDataArray[commonDataIndex] != NULL) {
return gCommonICUDataArray[commonDataIndex];
}
- int32_t i;
+ uint32_t i;
for(i = 0; i < commonDataIndex; ++i) {
if(gCommonICUDataArray[i]->pHeader == &U_ICUDATA_ENTRY_POINT) {
/* The linked-in data is already in the list. */
@@ -1022,7 +1022,7 @@ static UDataMemory *doLoadFromCommonData
UDataMemory *pEntryData;
const DataHeader *pHeader;
UDataMemory *pCommonData;
- int32_t commonDataIndex;
+ uint32_t commonDataIndex;
UBool checkedExtendedICUData = FALSE;
/* try to get common data. The loop is for platforms such as the 390 that do
* not initially load the full set of ICU data. If the lookup of an ICU data item
@@ -1127,7 +1127,7 @@ doOpenChoice(const char *path, const cha
const char *dataPath;
- int32_t tocEntrySuffixIndex;
+ uint32_t tocEntrySuffixIndex;
const char *tocEntryPathSuffix;
UErrorCode subErrorCode=U_ZERO_ERROR;
const char *treeChar;
@@ -1191,7 +1191,7 @@ doOpenChoice(const char *path, const cha
if(isICUData) {
pkgName.append(U_ICUDATA_NAME, *pErrorCode);
} else {
- pkgName.append(path, (int32_t)(treeChar-path), *pErrorCode);
+ pkgName.append(path, (uint32_t)(treeChar-path), *pErrorCode);
if (first == NULL) {
/*
This user data has no path, but there is a tree name.

View File

@ -1,6 +1,8 @@
#%%global debugtrace 1
Name: icu
Version: 56.1
Release: 4%{?dist}
Release: 5%{?dist}
Summary: International Components for Unicode
Group: Development/Tools
License: MIT and UCD and Public Domain
@ -16,6 +18,7 @@ Patch3: icu.7601.Indic-ccmp.patch
Patch4: gennorm2-man.patch
Patch5: icuinfo-man.patch
Patch6: armv7hl-disable-tests.patch
Patch7: %{name}-%{version}-codes-cache-extend.patch
%description
Tools and utilities for developing with icu.
@ -66,9 +69,11 @@ BuildArch: noarch
%ifarch armv7hl
%patch6 -p1 -b .armv7hl-disable-tests.patch
%endif
%patch7 -p1 -b .codes-cache-extend.patch
%build
cd source
pushd source
autoconf
CFLAGS='%optflags -fno-strict-aliasing'
CXXFLAGS='%optflags -fno-strict-aliasing'
@ -76,8 +81,14 @@ CXXFLAGS='%optflags -fno-strict-aliasing'
%if ! 0%{?endian}
CPPFLAGS='-DU_IS_BIG_ENDIAN=1'
%endif
#rhbz856594 do not use --disable-renaming or cope with the mess
%configure --with-data-packaging=library --disable-samples
OPTIONS='--with-data-packaging=library --disable-samples'
%if 0%{?debugtrace}
OPTIONS=$OPTIONS' --enable-debug --enable-tracing'
%endif
%configure $OPTIONS
#rhbz#225896
sed -i 's|-nodefaultlibs -nostdlib||' config/mh-linux
#rhbz#681941
@ -97,6 +108,9 @@ sed -i '/^\s\+\$(INSTALL_DATA) \$(docsrchfiles) \$(DESTDIR)\$(docdir)\/\$(docsub
# icu/source/common/unicode/uconfig.h to propagate to consumer packages.
test -f uconfig.h.prepend && sed -e '/^#define __UCONFIG_H__/ r uconfig.h.prepend' -i common/unicode/uconfig.h
# more verbosity for build.log
sed -i -r 's|(PKGDATA_OPTS = )|\1-v |' data/Makefile
make %{?_smp_mflags} VERBOSE=1
make %{?_smp_mflags} doc
@ -118,6 +132,11 @@ if grep -q @VERSION@ source/tools/*/*.8 source/tools/*/*.1 source/config/*.1; th
fi
make %{?_smp_mflags} -C source check ||:
# log available codes
pushd source
LD_LIBRARY_PATH=lib:stubdata:tools/ctestfw:$LD_LIBRARY_PATH bin/uconv -l
%post -n lib%{name} -p /sbin/ldconfig
%postun -n lib%{name} -p /sbin/ldconfig
@ -174,6 +193,10 @@ make %{?_smp_mflags} -C source check ||:
%doc source/__docs/%{name}/html/*
%changelog
* Sun Feb 28 2016 Raphael Groner <projects.rg@smart.ms> - 56.1-5
- even more verbosity and debug output
- add path to extend ICU's internal cache of codes
* Sat Feb 27 2016 Rex Dieter <rdieter@fedoraproject.org> - 56.1-4
- %%build: make VERBOSE=1
- %%check: keep 'make check' non-fatal while investigating rhbz#1307633