- Add patch to fix strict-aliasing

- Disable production mode to enable debuginfo
epel9
Orion Poplawski 17 years ago
parent 609272dcb8
commit aad3b63a63

@ -0,0 +1,42 @@
--- hdf5-1.6.6/test/dtypes.c.alias 2007-08-16 10:12:05.000000000 -0600
+++ hdf5-1.6.6/test/dtypes.c 2008-02-06 10:14:42.000000000 -0700
@@ -5645,24 +5645,33 @@
for (j=0; j<nelmts; j++) {
/* Do it this way for alignment reasons */
#if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE
- long double temp[1];
+ union {
+ long double ld[1];
+ double d[1];
+ float f[1];
+ unsigned char uc[1];
+ } temp;
#else
- double temp[1];
+ union {
+ double d[1];
+ float f[1];
+ unsigned char uc[1];
+ } temp;
#endif
if (src_size<=dst_size) {
for (k=0; k<dst_size; k++) buf[j*src_size+k] = HDrand();
} else {
for (k=0; k<dst_size; k++)
- ((unsigned char*)temp)[k] = HDrand();
+ temp.uc[k] = HDrand();
if (FLT_DOUBLE==src_type && FLT_FLOAT==dst_type) {
- hw_d = *((float*)temp);
+ hw_d = *(temp.f);
HDmemcpy(buf+j*src_size, &hw_d, src_size);
#if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE
} else if (FLT_LDOUBLE==src_type && FLT_FLOAT==dst_type) {
- hw_ld = *((float*)temp);
+ hw_ld = *(temp.f);
HDmemcpy(buf+j*src_size, &hw_ld, src_size);
} else if (FLT_LDOUBLE==src_type && FLT_DOUBLE==dst_type) {
- hw_ld = *((double*)temp);
+ hw_ld = *(temp.d);
HDmemcpy(buf+j*src_size, &hw_ld, src_size);
#endif
}

@ -1,6 +1,6 @@
Name: hdf5 Name: hdf5
Version: 1.6.6 Version: 1.6.6
Release: 6%{?dist} Release: 7%{?dist}
Summary: A general purpose library and file format for storing scientific data Summary: A general purpose library and file format for storing scientific data
License: BSD License: BSD
Group: System Environment/Libraries Group: System Environment/Libraries
@ -18,6 +18,7 @@ Patch10: hdf5-1.6.5-open.patch
Patch11: hdf5-1.6.6-alpha.patch Patch11: hdf5-1.6.6-alpha.patch
Patch12: hdf5-1.6.6-s390.patch Patch12: hdf5-1.6.6-s390.patch
Patch13: hdf5-1.6.6-free.patch Patch13: hdf5-1.6.6-free.patch
Patch14: hdf5-1.6.6-alias.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: krb5-devel, openssl-devel, zlib-devel, gcc-gfortran, time BuildRequires: krb5-devel, openssl-devel, zlib-devel, gcc-gfortran, time
@ -52,14 +53,17 @@ HDF5 development headers and libraries.
%patch11 -p1 -b .alpha %patch11 -p1 -b .alpha
%patch12 -p1 -b .s390 %patch12 -p1 -b .s390
%patch13 -p1 -b .free %patch13 -p1 -b .free
%patch14 -p1 -b .alias
%build %build
export CC=gcc export CC=gcc
export CXX=g++ export CXX=g++
export F9X=gfortran export F9X=gfortran
%configure --with-ssl --enable-cxx --enable-fortran \ # Must turn of production mode to preserve -g during compile
--enable-threadsafe --with-pthread %configure --enable-production=no --enable-debug=no \
--enable-cxx --enable-fortran --enable-threadsafe \
--with-pthread --with-ssl
make make
@ -115,6 +119,10 @@ rm -rf $RPM_BUILD_ROOT
%changelog %changelog
* Wed Feb 6 2008 Orion Poplawski <orion@cora.nwra.com> 1.6.6-7
- Add patch to fix strict-aliasing
- Disable production mode to enable debuginfo
* Tue Feb 5 2008 Orion Poplawski <orion@cora.nwra.com> 1.6.6-6 * Tue Feb 5 2008 Orion Poplawski <orion@cora.nwra.com> 1.6.6-6
- Add patch to fix calling free() in H5PropList.cpp - Add patch to fix calling free() in H5PropList.cpp

Loading…
Cancel
Save