diff options
author | Martin Oberhuber | 2017-05-25 20:26:53 +0000 |
---|---|---|
committer | Arun Thondapu | 2017-05-29 17:03:01 +0000 |
commit | c636cf26e8ae94def06ac84039f9dde6e85f5e5d (patch) | |
tree | 736d8e30cd44b58d4f9ba412796ae5f02419be96 /features/org.eclipse.equinox.executable.feature/library/gtk | |
parent | 13af9dee8d49f1c068d8bc8caaf3ec816f754a3a (diff) | |
download | rt.equinox.framework-c636cf26e8ae94def06ac84039f9dde6e85f5e5d.tar.gz rt.equinox.framework-c636cf26e8ae94def06ac84039f9dde6e85f5e5d.tar.xz rt.equinox.framework-c636cf26e8ae94def06ac84039f9dde6e85f5e5d.zip |
Bug 517013 - Avoid memcpy@GLIBC_2.14 dependency on Linux x86_64
On newer Linux x86_64 hosts like REL7, an optimized version of
memcpy() is available in glibc and linked in by default. The
drawback of linking that optimized version is, that the resulting
binaries don't run any more on older Linux distributions like
REL6 (where that optimized memcpy@GLIBC_2.14 is not available).
This fix avoids the problem by replacing memcpy() with memmove()
on Linux x86_64 hosts only. To be safe, it also compiles with
-fno-builtin-memcpy -fno-builtin-memmove on Linux x86_64. See
also bug 515155 for a very similar fix in SWT to support REL6.
Change-Id: I39bc8d4975015eb52f35d3d02eae921bf6d66478
Signed-off-by: Martin Oberhuber <martin.oberhuber@windriver.com>
Signed-off-by: Arun Thondapu <arunkumar.thondapu@in.ibm.com>
Diffstat (limited to 'features/org.eclipse.equinox.executable.feature/library/gtk')
-rwxr-xr-x[-rw-r--r--] | features/org.eclipse.equinox.executable.feature/library/gtk/build.sh | 7 | ||||
-rw-r--r-- | features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh b/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh index 19ac6ec0b..6cd9ca86e 100644..100755 --- a/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh +++ b/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh @@ -10,6 +10,7 @@ # IBM Corporation - initial API and implementation # Kevin Cornell (Rational Software Corporation) # Martin Oberhuber (Wind River) - [176805] Support building with gcc and debug +# Martin Oberhuber (Wind River) - [517013] Avoid memcpy@GLIBC_2.14 dependency #******************************************************************************* # # Usage: sh build.sh [<optional switches>] [clean] @@ -253,6 +254,12 @@ elif [ "$defaultOS" = "solaris" ]; then M_ARCH=-m64 export M_ARCH fi +elif [ "$defaultOS" = "linux" ]; then + if [ "$defaultOSArch" = "x86_64" ]; then + # Bug 517013: Avoid using memcpy() to remain compatible with older glibc + M_CFLAGS="-fno-builtin-memcpy -fno-builtin-memmove" + export M_CFLAGS + fi fi LIBRARY_DIR="$EXEC_DIR/../org.eclipse.equinox.launcher.$defaultWS.$defaultOS.$defaultOSArch" diff --git a/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak b/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak index 6abe01702..e20823478 100644 --- a/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak +++ b/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak @@ -48,7 +48,7 @@ GTK_LIBS = \ -DGTK3_LIB="\"libgtk-3.so.0\"" -DGDK3_LIB="\"libgdk-3.so.0\"" \ -DPIXBUF_LIB="\"libgdk_pixbuf-2.0.so.0\"" -DGOBJ_LIB="\"libgobject-2.0.so.0\"" -DX11_LIB="\"libX11.so.6\"" LFLAGS = ${M_ARCH} -shared -fpic -Wl,--export-dynamic -CFLAGS = ${M_ARCH} -g -s -Wall\ +CFLAGS = ${M_CFLAGS} ${M_ARCH} -g -s -Wall\ -fpic \ -DLINUX \ -DMOZILLA_FIX \ |