* commit '04d2a59544354802526584a38968069ac65e813e': Fix glibc 2.15 build.
This commit is contained in:
		@@ -15,13 +15,23 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#undef _GNU_SOURCE
 | 
			
		||||
#include <features.h> // Get __BIONIC__ or __GLIBC__ so we can tell what we're using.
 | 
			
		||||
 | 
			
		||||
// Old versions of glibc (like our current host prebuilt sysroot one) have
 | 
			
		||||
// headers that don't work if you #undef _GNU_SOURCE, which makes it
 | 
			
		||||
// impossible to build this test.
 | 
			
		||||
#include <features.h>
 | 
			
		||||
#if defined(__GLIBC__)
 | 
			
		||||
 | 
			
		||||
// At the time of writing, libcxx -- which is dragged in by gtest -- assumes
 | 
			
		||||
// declarations from glibc of things that aren't available without __USE_GNU.
 | 
			
		||||
// This means we can't even build this test (which is a problem because that
 | 
			
		||||
// means it doesn't get included in CTS).
 | 
			
		||||
// For glibc 2.15, the symbols in question are:
 | 
			
		||||
//   at_quick_exit, quick_exit, vasprintf, strtoll_l, strtoull_l, and strtold_l.
 | 
			
		||||
 | 
			
		||||
# if __GLIBC_PREREQ(2, 19)
 | 
			
		||||
#  error check whether we can build this now...
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#if !defined(__GLIBC__)
 | 
			
		||||
#include <string.h>
 | 
			
		||||
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
@@ -50,8 +60,5 @@ TEST(string, posix_strerror_r) {
 | 
			
		||||
  // The POSIX strerror_r sets errno to ERANGE (the GNU one doesn't).
 | 
			
		||||
  ASSERT_EQ(ERANGE, errno);
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
# if __GLIBC_PREREQ(2, 15)
 | 
			
		||||
#  error this test should work now
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -18,17 +18,6 @@
 | 
			
		||||
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
 | 
			
		||||
#if defined(__GLIBC__)
 | 
			
		||||
/* The host glibc we're currently building with doesn't have prlimit64 yet. */
 | 
			
		||||
static int prlimit64(pid_t, int resource, const struct rlimit64* new_limit, struct rlimit64* old_limit) {
 | 
			
		||||
  if (new_limit != NULL) {
 | 
			
		||||
    return setrlimit64(resource, new_limit);
 | 
			
		||||
  } else {
 | 
			
		||||
    return getrlimit64(resource, old_limit);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
TEST(sys_resource, smoke) {
 | 
			
		||||
#if defined(__LP64__) || defined(__GLIBC__)
 | 
			
		||||
  ASSERT_EQ(sizeof(rlimit), sizeof(rlimit64));
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,6 @@
 | 
			
		||||
#include <sys/wait.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TEST(unistd, sysconf_SC_MONOTONIC_CLOCK) {
 | 
			
		||||
  ASSERT_GT(sysconf(_SC_MONOTONIC_CLOCK), 0);
 | 
			
		||||
}
 | 
			
		||||
@@ -250,8 +249,6 @@ TEST(unistd, getenv_unsetenv) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TEST(unistd, unsetenv_EINVAL) {
 | 
			
		||||
  EXPECT_EQ(-1, unsetenv(NULL));
 | 
			
		||||
  EXPECT_EQ(EINVAL, errno);
 | 
			
		||||
  EXPECT_EQ(-1, unsetenv(""));
 | 
			
		||||
  EXPECT_EQ(EINVAL, errno);
 | 
			
		||||
  EXPECT_EQ(-1, unsetenv("a=b"));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user