Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Second stage bootstrap failure after r207606 #20097

Closed
ismail opened this issue May 12, 2014 · 5 comments
Closed

Second stage bootstrap failure after r207606 #20097

ismail opened this issue May 12, 2014 · 5 comments
Labels
bugzilla Issues migrated from bugzilla libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.

Comments

@ismail
Copy link
Contributor

ismail commented May 12, 2014

Bugzilla Link 19723
Resolution FIXED
Resolved on May 15, 2014 20:47
Version unspecified
OS Linux
CC @hfinkel,@mclow,@nico

Extended Description

r207606 has broken stage2 bootstrap on openSUSE 13.1 i586/x86-64 with libcxx/libcxxabi enabled:

[ 723s] FAILED: /home/abuild/rpmbuild/BUILD/llvm/stage1/bin/clang++ -DLLVMSupport_EXPORTS -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -fcolor-diagnostics -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -fPIC -Ilib/Support -I../lib/Support -Iinclude -I../include -fno-exceptions -MMD -MT lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o -c ../lib/Support/Allocator.cpp
[ 723s] In file included from ../lib/Support/Allocator.cpp:14:
[ 723s] ../include/llvm/Support/Allocator.h:421:65: error: 'S' does not refer to a value
[ 723s] Size, std::min((size_t)llvm::NextPowerOf2(Size), offsetof(S, x)));
[ 723s] ^
[ 723s] ../include/llvm/Support/Allocator.h:411:10: note: declared here
[ 723s] struct S {
[ 723s] ^
[ 723s] 1 error generated.

The difference between non-working and working preprocessed file is:

@@ -36617,7 +36628,7 @@
} x;
};
return Allocator.Allocate(

  •  Size, std::min((size_t)llvm::NextPowerOf2(Size), offsetof(S, x)));
    
  •  Size, std::min((size_t)llvm::NextPowerOf2(Size), __builtin_offsetof(S, x)));
    

}

Reverting r207606 fixes the problem.

@nico
Copy link
Contributor

nico commented May 12, 2014

libc++'s cstddef says:

#ifdef GLIBC
#define __need_NULL
#define __need_ptrdiff_t
#define __need_size_t
#endif // GLIBC

#include <stddef.h>

r207606 changed the __need_foo macros to behave like they do with gcc: If they are set, only the __need_foo stuff gets defined.

These lines were added with the cryptic comment "for ubuntu" -- I think they're just wrong, after r207606. Can you check if this patch fixes things for you?

thakis$ svn diff
Index: include/cstddef

--- include/cstddef (revision 195228)
+++ include/cstddef (working copy)
@@ -36,11 +36,6 @@
#include <__config>

#ifdef GLIBC
-#define __need_NULL
-#define __need_ptrdiff_t
-#define __need_size_t
-#endif // GLIBC

#include <stddef.h>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

@nico
Copy link
Contributor

nico commented May 12, 2014

Sorry, this patch:

thakis$ svn diff include/cstddef
Index: include/cstddef

--- include/cstddef (revision 195228)
+++ include/cstddef (working copy)
@@ -35,12 +35,6 @@

#include <__config>

-#ifdef GLIBC
-#define __need_NULL
-#define __need_ptrdiff_t
-#define __need_size_t
-#endif // GLIBC

#include <stddef.h>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

@ismail
Copy link
Contributor Author

ismail commented May 13, 2014

Sorry, this patch:

thakis$ svn diff include/cstddef
Index: include/cstddef

--- include/cstddef (revision 195228)
+++ include/cstddef (working copy)
@@ -35,12 +35,6 @@

#include <__config>

-#ifdef GLIBC
-#define __need_NULL
-#define __need_ptrdiff_t
-#define __need_size_t
-#endif // GLIBC

#include <stddef.h>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

This fixes the problem, thanks!

@nico
Copy link
Contributor

nico commented May 13, 2014

Thanks for testing! I sent that patch out for review here: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140512/105387.html

@nico
Copy link
Contributor

nico commented May 16, 2014

r208942

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 9, 2021
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Projects
None yet
Development

No branches or pull requests

2 participants