make header files multilib safe
This commit is contained in:
parent
c6030192ad
commit
5a0f802724
23
ffi-multilib.h
Normal file
23
ffi-multilib.h
Normal file
@ -0,0 +1,23 @@
|
||||
/* This file is here to prevent a file conflict on multiarch systems. */
|
||||
#ifdef ffi_wrapper_h
|
||||
#error "Do not define ffi_wrapper_h!"
|
||||
#endif
|
||||
#define ffi_wrapper_h
|
||||
|
||||
#elif defined(__i386__)
|
||||
#include "ffi-i386.h"
|
||||
#elif defined(__powerpc64__)
|
||||
#include "ffi-ppc64.h"
|
||||
#elif defined(__powerpc__)
|
||||
#include "ffi-ppc.h"
|
||||
#elif defined(__s390x__)
|
||||
#include "ffi-s390x.h"
|
||||
#elif defined(__s390__)
|
||||
#include "ffi-s390.h"
|
||||
#elif defined(__x86_64__)
|
||||
#include "ffi-x86_64.h"
|
||||
#else
|
||||
#error "The libffi-devel package is not usable with the architecture."
|
||||
#endif
|
||||
|
||||
#undef ffi_wrapper_h
|
23
ffitarget-multilib.h
Normal file
23
ffitarget-multilib.h
Normal file
@ -0,0 +1,23 @@
|
||||
/* This file is here to prevent a file conflict on multiarch systems. */
|
||||
#ifdef ffitarget_wrapper_h
|
||||
#error "Do not define ffitarget_wrapper_h!"
|
||||
#endif
|
||||
#define ffitarget_wrapper_h
|
||||
|
||||
#elif defined(__i386__)
|
||||
#include "ffitarget-i386.h"
|
||||
#elif defined(__powerpc64__)
|
||||
#include "ffitarget-ppc64.h"
|
||||
#elif defined(__powerpc__)
|
||||
#include "ffitarget-ppc.h"
|
||||
#elif defined(__s390x__)
|
||||
#include "ffitarget-s390x.h"
|
||||
#elif defined(__s390__)
|
||||
#include "ffitarget-s390.h"
|
||||
#elif defined(__x86_64__)
|
||||
#include "ffitarget-x86_64.h"
|
||||
#else
|
||||
#error "The libffi-devel package is not usable with the architecture."
|
||||
#endif
|
||||
|
||||
#undef ffitarget_wrapper_h
|
26
libffi.spec
26
libffi.spec
@ -1,6 +1,8 @@
|
||||
%global multilib_arches %{ix86} ppc %{power64} s390 s390x x86_64
|
||||
|
||||
Name: libffi
|
||||
Version: 3.0.13
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: A portable foreign function interface library
|
||||
|
||||
Group: System Environment/Libraries
|
||||
@ -8,6 +10,8 @@ License: BSD
|
||||
URL: http://sourceware.org/libffi
|
||||
Source0: ftp://sourceware.org/pub/libffi/libffi-%{version}.tar.gz
|
||||
# part of upstream commit 5feacad4
|
||||
Source1: ffi-multilib.h
|
||||
Source2: ffitarget-multilib.h
|
||||
Patch0: libffi-3.0.13-fix-include-path.patch
|
||||
# part of upstream commit 5feacad4
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
@ -69,6 +73,23 @@ make install DESTDIR=$RPM_BUILD_ROOT
|
||||
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
|
||||
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
||||
|
||||
# Determine generic arch target name for multilib wrapper
|
||||
basearch=%{_arch}
|
||||
%ifarch %{ix86}
|
||||
basearch=i386
|
||||
%endif
|
||||
|
||||
%ifarch %{multilib_arches}
|
||||
# Do header file switcheroo to avoid file conflicts on systems where you
|
||||
# can have both a 32- and 64-bit version of the library, and they each need
|
||||
# their own correct-but-different versions of the headers to be usable.
|
||||
for i in ffi ffitarget; do
|
||||
mv $RPM_BUILD_ROOT%{_includedir}/$i.h $RPM_BUILD_ROOT%{_includedir}/$i-${basearch}.h
|
||||
done
|
||||
install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_includedir}/ffi.h
|
||||
install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_includedir}/ffitarget.h
|
||||
%endif
|
||||
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
@ -101,6 +122,9 @@ fi
|
||||
%{_infodir}/libffi.info.gz
|
||||
|
||||
%changelog
|
||||
* Mon May 27 2013 Tom Callaway <spot@fedoraproject.org> - 3.0.13-3
|
||||
- make header files multilib safe
|
||||
|
||||
* Sat May 25 2013 Tom Callaway <spot@fedoraproject.org> - 3.0.13-2
|
||||
- fix incorrect header pathing (and .pc file)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user