-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 02.06.2012 04:37, Nilesh Govindrajan wrote: > On Jun 2, 2012 6:08 AM, "walt" <[email protected]> wrote: <SNIP> > > Has anyone tried compiling chromium 20 (as of yesterday) and > libreoffice 3.5.4.2 using gcc 4.7.0? I am unable to do so. Using > unstable Amd64. > > -- Nilesh Govindrajan http://nileshgr.com >
Openoffice: No Chromium >20: Yes - they're a bit of a PITA... It won't work without some patches. Mostly missing includes for unistd.h (in most files is a #if defined(OS_ANDROID) #include <unistd.h> #endif where it is needed (ideally in a #id defined(OS_POSIX) (or LINUX?) #endif block). I've got no time to look into the versions 20.x to <21.0.1155.2 and my custom patch for 21.0.1155.2 also fixes a selinux related issue. If you google you'll find some other patches (even one on bugs.gentoo.org) which max work for you (depends on version, I think). I'll attach my patch for reference. WKR Hinnerk -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJPybgeAAoJEJwwOFaNFkYcu2YIAIa3xtDXMD7hFy/7iI5yEhd2 eLE5+GswNKYdCeYRaLvuqQpWJnm2GZj7UQVklxd1qgA2UhxgHCZkiya5Uj8M3va6 iE8e2TfCwAUqkL69/9HAXQh+cuHreq7ZAP9/+1yUaH8NOa9gZluIzyZv/TtO/PiJ wDK6Zhar/MlpFOrduz3m0gFuJun1fruVGvT9cIWRTDSsMmsGm6l88JNG1YyXtmZV yoL5ZfT0g+Lw1IJ6C03WEFG8yW/nXjE9wIojjzQoC3fkBmTPNWmcXdz5LzPx8T+P rc9WQf8IGRQwA8ME8LPEJZdGxZmT170nOs74TqwJOs7F2YGAwL+N0euHF8DCilg= =16Fc -----END PGP SIGNATURE-----
diff -ru chromium-21.0.1155.2/chrome/browser/policy/policy_path_parser_linux.cc chromium-21.0.1155.2.new/chrome/browser/policy/policy_path_parser_linux.cc
--- chromium-21.0.1155.2/chrome/browser/policy/policy_path_parser_linux.cc 2012-05-30 03:47:01.000000000 +0200
+++ chromium-21.0.1155.2.new/chrome/browser/policy/policy_path_parser_linux.cc 2012-05-30 23:53:01.123823731 +0200
@@ -4,6 +4,10 @@
#include <pwd.h>
+//#if defined(OS_POSIX)
+#include <unistd.h>
+//#endif
+
#include "chrome/browser/policy/policy_path_parser.h"
#include "base/logging.h"
diff -ru chromium-21.0.1155.2/content/public/common/sandbox_init.cc chromium-21.0.1155.2.new/content/public/common/sandbox_init.cc
--- chromium-21.0.1155.2/content/public/common/sandbox_init.cc 2012-05-30 03:46:30.000000000 +0200
+++ chromium-21.0.1155.2.new/content/public/common/sandbox_init.cc 2012-05-30 17:09:00.044889918 +0200
@@ -6,6 +6,8 @@
#if defined(OS_ANDROID)
#include <unistd.h>
+#elif defined(OS_POSIX)
+#include <unistd.h>
#endif
namespace content {
diff -ru chromium-21.0.1155.2/content/zygote/zygote_linux.cc chromium-21.0.1155.2.new/content/zygote/zygote_linux.cc
--- chromium-21.0.1155.2/content/zygote/zygote_linux.cc 2012-05-30 03:46:27.000000000 +0200
+++ chromium-21.0.1155.2.new/content/zygote/zygote_linux.cc 2012-05-31 04:04:32.072791812 +0200
@@ -31,10 +31,38 @@
#include "content/common/sandbox_methods_linux.h"
#include "content/common/zygote_commands_linux.h"
+#if defined(CHROMIUM_SELINUX)
+#include <selinux/selinux.h>
+#include <selinux/context.h>
+#endif
+
// See http://code.google.com/p/chromium/wiki/LinuxZygote
namespace content {
+
+#if defined(CHROMIUM_SELINUX)
+static void SELinuxTransitionToTypeOrDie(char const* type) {
+ security_context_t security_context;
+ if (getcon(&security_context))
+ LOG(FATAL) << "Cannot get SELinux context";
+
+ context_t context = context_new(security_context);
+ context_type_set(context, type);
+ const int r = setcon(context_str(context));
+ context_free(context);
+ freecon(security_context);
+
+ if (r) {
+ LOG(FATAL) << "dynamic transition to type '" << type << "' failed. "
+ "(this binary has been built with SELinux support, but maybe "
+ "the policies haven't been loaded into the kernel?)";
+ }
+}
+#endif // CHROMIUM_SELINUX
+
+
+
namespace {
// NOP function. See below where this handler is installed.
diff -ru chromium-21.0.1155.2/content/zygote/zygote_linux.h chromium-21.0.1155.2.new/content/zygote/zygote_linux.h
--- chromium-21.0.1155.2/content/zygote/zygote_linux.h 2012-05-30 03:46:27.000000000 +0200
+++ chromium-21.0.1155.2.new/content/zygote/zygote_linux.h 2012-05-31 03:31:16.013928301 +0200
@@ -16,6 +16,8 @@
namespace content {
+static void SELinuxTransitionToTypeOrDie(char const * type);
+
class ZygoteForkDelegate;
// This is the object which implements the zygote. The ZygoteMain function,
@@ -106,7 +108,6 @@
int initial_uma_sample_;
int initial_uma_boundary_value_;
};
-
} // namespace content
#endif // CONTENT_ZYGOTE_ZYGOTE_H_
diff -ru chromium-21.0.1155.2/content/zygote/zygote_main_linux.cc chromium-21.0.1155.2.new/content/zygote/zygote_main_linux.cc
--- chromium-21.0.1155.2/content/zygote/zygote_main_linux.cc 2012-05-30 03:46:27.000000000 +0200
+++ chromium-21.0.1155.2.new/content/zygote/zygote_main_linux.cc 2012-05-31 04:04:21.383792544 +0200
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "content/zygote/zygote_linux.h"
+
#include <dlfcn.h>
#include <fcntl.h>
#include <pthread.h>
@@ -48,11 +50,6 @@
#include <signal.h>
#endif
-#if defined(CHROMIUM_SELINUX)
-#include <selinux/selinux.h>
-#include <selinux/context.h>
-#endif
-
namespace content {
// See http://code.google.com/p/chromium/wiki/LinuxZygote
@@ -64,26 +61,6 @@
// chrooted.
static const char kSUIDSandboxVar[] = "SBX_D";
-#if defined(CHROMIUM_SELINUX)
-static void SELinuxTransitionToTypeOrDie(const char* type) {
- security_context_t security_context;
- if (getcon(&security_context))
- LOG(FATAL) << "Cannot get SELinux context";
-
- context_t context = context_new(security_context);
- context_type_set(context, type);
- const int r = setcon(context_str(context));
- context_free(context);
- freecon(security_context);
-
- if (r) {
- LOG(FATAL) << "dynamic transition to type '" << type << "' failed. "
- "(this binary has been built with SELinux support, but maybe "
- "the policies haven't been loaded into the kernel?)";
- }
-}
-#endif // CHROMIUM_SELINUX
-
// With SELinux we can carve out a precise sandbox, so we don't have to play
// with intercepting libc calls.
#if !defined(CHROMIUM_SELINUX)
diff -ru chromium-21.0.1155.2/ipc/ipc_platform_file.cc chromium-21.0.1155.2.new/ipc/ipc_platform_file.cc
--- chromium-21.0.1155.2/ipc/ipc_platform_file.cc 2012-05-30 03:46:50.000000000 +0200
+++ chromium-21.0.1155.2.new/ipc/ipc_platform_file.cc 2012-05-30 16:42:11.432999915 +0200
@@ -8,6 +8,10 @@
#include <unistd.h>
#endif
+#if defined(OS_POSIX)
+#include <unistd.h>
+#endif
+
namespace IPC {
PlatformFileForTransit GetFileHandleForProcess(base::PlatformFile handle,
selinux-gcc-4.7.patch.sig
Description: PGP signature

