[llvm-bugs] [Bug 27059] New: ld: section __DATA/__thread_bss extends beyond end of file, file 'fail.o' for architecture x86_64

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Mar 24 14:09:13 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=27059

            Bug ID: 27059
           Summary: ld: section __DATA/__thread_bss extends beyond end of
                    file, file 'fail.o' for architecture x86_64
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Object
          Assignee: unassignedbugs at nondot.org
          Reporter: deadalnix at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

On OSX:

Sample IR:

; ModuleID = '<stdin>'
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"

%C6object9ClassInfo = type { %C6object9ClassInfo__vtbl*, %C6object9ClassInfo* }
%C6object9ClassInfo__vtbl = type {}
%C6object8TypeInfo__vtbl = type {}
%C6object6Object__vtbl = type {}
%C8test01761A__vtbl = type {}
%C8test01761A = type { %C8test01761A__vtbl* }
%C6object6Object = type { %C6object6Object__vtbl* }

@C6object9ClassInfo__Metadata = linkonce_odr constant { %C6object9ClassInfo,
%C6object9ClassInfo__vtbl } { %C6object9ClassInfo { %C6object9ClassInfo__vtbl*
getelementptr inbounds ({ %C6object9ClassInfo, %C6object9ClassInfo__vtbl }, {
%C6object9ClassInfo, %C6object9ClassInfo__vtbl }*
@C6object9ClassInfo__Metadata, i32 0, i32 1), %C6object9ClassInfo*
getelementptr inbounds ({ %C6object9ClassInfo, %C6object8TypeInfo__vtbl }, {
%C6object9ClassInfo, %C6object8TypeInfo__vtbl }* @C6object8TypeInfo__Metadata,
i32 0, i32 0) }, %C6object9ClassInfo__vtbl zeroinitializer }
@C6object8TypeInfo__Metadata = linkonce_odr constant { %C6object9ClassInfo,
%C6object8TypeInfo__vtbl } { %C6object9ClassInfo { %C6object9ClassInfo__vtbl*
getelementptr inbounds ({ %C6object9ClassInfo, %C6object9ClassInfo__vtbl }, {
%C6object9ClassInfo, %C6object9ClassInfo__vtbl }*
@C6object9ClassInfo__Metadata, i32 0, i32 1), %C6object9ClassInfo*
getelementptr inbounds ({ %C6object9ClassInfo, %C6object6Object__vtbl }, {
%C6object9ClassInfo, %C6object6Object__vtbl }* @C6object6Object__Metadata, i32
0, i32 0) }, %C6object8TypeInfo__vtbl zeroinitializer }
@C6object6Object__Metadata = linkonce_odr constant { %C6object9ClassInfo,
%C6object6Object__vtbl } { %C6object9ClassInfo { %C6object9ClassInfo__vtbl*
getelementptr inbounds ({ %C6object9ClassInfo, %C6object9ClassInfo__vtbl }, {
%C6object9ClassInfo, %C6object9ClassInfo__vtbl }*
@C6object9ClassInfo__Metadata, i32 0, i32 1), %C6object9ClassInfo*
getelementptr inbounds ({ %C6object9ClassInfo, %C6object6Object__vtbl }, {
%C6object9ClassInfo, %C6object6Object__vtbl }* @C6object6Object__Metadata, i32
0, i32 0) }, %C6object6Object__vtbl zeroinitializer }
@C8test01761A__Metadata = linkonce_odr constant { %C6object9ClassInfo,
%C8test01761A__vtbl } { %C6object9ClassInfo { %C6object9ClassInfo__vtbl*
getelementptr inbounds ({ %C6object9ClassInfo, %C6object9ClassInfo__vtbl }, {
%C6object9ClassInfo, %C6object9ClassInfo__vtbl }*
@C6object9ClassInfo__Metadata, i32 0, i32 1), %C6object9ClassInfo*
getelementptr inbounds ({ %C6object9ClassInfo, %C6object6Object__vtbl }, {
%C6object9ClassInfo, %C6object6Object__vtbl }* @C6object6Object__Metadata, i32
0, i32 0) }, %C8test01761A__vtbl zeroinitializer }
@_D8test01762asG65536C8test01761A = thread_local global [65536 x
%C8test01761A*] zeroinitializer

define void @_D8test01764mainFMZv() {
body:
  br label %bound_ok

bound_ok:                                         ; preds = %bound_ok, %body
  %indvars.iv = phi i64 [ 0, %body ], [ %indvars.iv.next, %bound_ok ]
  %0 = getelementptr inbounds [65536 x %C8test01761A*], [65536 x
%C8test01761A*]* @_D8test01762asG65536C8test01761A, i64 0, i64 %indvars.iv
  %1 = tail call noalias i8* @_d_allocmemory(i64 8)
  %2 = bitcast i8* %1 to i8**
  store i8* bitcast (%C6object9ClassInfo__vtbl** getelementptr inbounds ({
%C6object9ClassInfo, %C8test01761A__vtbl }, { %C6object9ClassInfo,
%C8test01761A__vtbl }* @C8test01761A__Metadata, i64 1, i32 0, i32 0) to i8*),
i8** %2, align 8
  %3 = bitcast i8* %1 to %C6object6Object*
  tail call void @_D6object6Object6__ctorFMC6object6ObjectZv(%C6object6Object*
%3)
  %4 = bitcast %C8test01761A** %0 to i8**
  store i8* %1, i8** %4, align 8
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %5 = icmp slt i64 %indvars.iv.next, 65536
  br i1 %5, label %bound_ok, label %loop.exit

loop.exit:                                        ; preds = %bound_ok
  ret void
}

declare void @_D6object6Object6__ctorFMC6object6ObjectZv(%C6object6Object*)

declare i8* @_d_allocmemory(i64)

Compilation:

$ ./bin/llc < fail.ll -o fail.o -filetype=obj
$ gcc -o 'a.out' 'failopt.o'
ld: section __DATA/__thread_bss extends beyond end of file, file 'failopt.o'
for architecture x86_64
collect2: error: ld returned 1 exit status

For reference:
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc5/5.3.0/libexec/gcc/x86_64-apple-darwin15.3.0/5.3.0/lto-wrapper
Target: x86_64-apple-darwin15.3.0
Configured with: ../configure --build=x86_64-apple-darwin15.3.0
--prefix=/usr/local/Cellar/gcc5/5.3.0
--libdir=/usr/local/Cellar/gcc5/5.3.0/lib/gcc/5
--enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-5
--with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr
--with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl014
--with-system-zlib --enable-libstdcxx-time=yes --enable-stage1-checking
--enable-checking=release --enable-lto --disable-werror
--with-pkgversion='Homebrew gcc5 5.3.0'
--with-bugurl=https://github.com/Homebrew/homebrew-versions/issues
--enable-plugin --disable-nls --enable-multilib
Thread model: posix
gcc version 5.3.0 (Homebrew gcc5 5.3.0)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160324/97fdae7f/attachment-0001.html>


More information about the llvm-bugs mailing list