From: Jan Rękorajski Date: Sun, 3 Jan 2016 21:02:37 +0000 (+0100) Subject: - fix building on x32 X-Git-Tag: auto/th/fox-1.7.49-3 X-Git-Url: http://git.pld-linux.org/?p=packages%2Ffox.git;a=commitdiff_plain;h=71c8b69bd66b3e846f1eb45bc955a62e8e5f169c - fix building on x32 - rel 3 --- diff --git a/fox.spec b/fox.spec index 60a4fd9..6860b63 100644 --- a/fox.spec +++ b/fox.spec @@ -9,7 +9,7 @@ Summary(pl.UTF-8): FOX - toolkit graficzny w C++ Name: fox # NOTE: after switching to 1.8.x keep stable (1.8.x) on HEAD and devel (1.9.x) on DEVEL Version: 1.7.49 -Release: 2 +Release: 3 License: LGPL v3+ with relinking exemption Group: X11/Libraries Source0: http://ftp.fox-toolkit.org/pub/%{name}-%{version}.tar.gz @@ -17,6 +17,7 @@ Source0: http://ftp.fox-toolkit.org/pub/%{name}-%{version}.tar.gz Patch0: %{name}-opt.patch Patch1: %{name}-link.patch Patch2: %{name}-Makefile.patch +Patch3: x32.patch URL: http://www.fox-toolkit.org/ BuildRequires: OpenGL-GLU-devel BuildRequires: autoconf >= 2.59-9 @@ -40,7 +41,7 @@ BuildRequires: xorg-lib-libXrandr-devel BuildRequires: zlib-devel >= 1.1.4 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define _noautoreqdep libGL.so.1 libGLU.so.1 +%define _noautoreqdep libGL.so.1 libGLU.so.1 %description FOX is a C++-Based Library for Graphical User Interface Development @@ -138,6 +139,7 @@ FOX - przykładowe programy. %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 %build %{__libtoolize} diff --git a/x32.patch b/x32.patch new file mode 100644 index 0000000..b5de071 --- /dev/null +++ b/x32.patch @@ -0,0 +1,38 @@ +--- fox-1.7.49/lib/FXAtomic.cpp.orig 2016-01-03 21:32:28.624304727 +0100 ++++ fox-1.7.49/lib/FXAtomic.cpp 2016-01-03 21:34:45.642765297 +0100 +@@ -266,7 +266,7 @@ + FXptr atomicSet(volatile FXptr* ptr,FXptr v){ + #if defined(WIN32) && ((_MSC_VER >= 1400) || (__BORLANDC__ >= 0x500)) + return (FXptr)InterlockedExchangePointer(ptr,v); +-#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && defined(__i386__)) ++#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && (defined(__i386__) || defined(__ILP32__))) + FXptr ret=v; + __asm__ __volatile__("xchgl %0, (%1)\n\t" : "=r"(ret) : "r"(ptr), "0"(ret) : "memory", "cc"); + return ret; +@@ -290,7 +290,7 @@ + return (FXptr)InterlockedExchangeAdd64((LONGLONG*)ptr,(LONGLONG)v); + #elif defined(WIN32) + return (FXptr)InterlockedExchangeAdd((LONG*)ptr,(LONG)v); +-#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && defined(__i386__)) ++#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && (defined(__i386__) || defined(__ILP32__))) + register FXptr ret=(void*)v; + __asm__ __volatile__ ("lock\n\t" + "xaddl %0, (%1)\n\t" : "=r"(ret) : "r"(ptr), "0"(ret) : "memory", "cc"); +@@ -314,7 +314,7 @@ + FXptr atomicCas(volatile FXptr* ptr,FXptr expect,FXptr v){ + #if defined(WIN32) && ((_MSC_VER >= 1400) || (__BORLANDC__ >= 0x500)) + return (FXptr)InterlockedCompareExchangePointer((void**)ptr,v,expect); +-#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && defined(__i386__)) ++#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && (defined(__i386__) || defined(__ILP32__))) + register FXptr ret=(FXptr)v; + __asm__ __volatile__("lock\n\t" + "cmpxchgl %2, (%1)\n\t" : "=a"(ret) : "r"(ptr), "r"(v), "a"(expect) : "memory", "cc"); +@@ -340,7 +340,7 @@ + FXbool atomicBoolCas(volatile FXptr* ptr,FXptr expect,FXptr v){ + #if defined(WIN32) && ((_MSC_VER >= 1400) || (__BORLANDC__ >= 0x500)) + return (InterlockedCompareExchangePointer((void**)ptr,v,expect)==expect); +-#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && defined(__i386__)) ++#elif ((defined(__GNUC__) || defined(__INTEL_COMPILER)) && (defined(__i386__) || defined(__ILP32__))) + register FXbool ret; + __asm__ __volatile__ ("lock\n\t" + "cmpxchgl %2, (%1)\n\t"