Bug 717495

Summary: binutils > 2.21.51.0.7 breaks build of ghc-hinotify.x86_64
Product: [Fedora] Fedora Reporter: Jens Petersen <petersen>
Component: biniaxAssignee: Nick Clifton <nickc>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 16CC: fedora, gwync, jakub, nickc
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-08-11 10:21:20 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 715799    
Attachments:
Description Flags
Masks.s.gz
none
Masks.s.gz none

Description Jens Petersen 2011-06-29 01:28:36 UTC
Description of problem:
It is not possible to ghc-hinotify (a wrapper of inotify)
currently in F16 rawhide because of an apparent regression in binutils.

Version-Release number of selected component (if applicable):
2.21.51.0.7 and later

How reproducible:
100%

Steps to Reproduce:
1. install rawhide on x86_64
2. fedpkg co -a ghc-hinotify
3. fedpkg build
4. rpm -q binutils

Actual results:
3. Build fails: see bug 715799 and below.
4. binutils-2.21.52.0.1-5.fc16

Expected results:
Build to succeed like it does for binutils < 2.21.51.0.7

Comment 1 Jens Petersen 2011-06-29 04:51:23 UTC
$ rpm -q binutils
binutils-2.21.51.0.7-1.fc16.x86_64
$ cd hinotify-0.3.1
$ runghc Setup configure
$ runghc Setup build -v3 --ghc-option=-keep-s-files
:
Glasgow Haskell Compiler, Version 7.0.4, for Haskell 98, stage 2 booted by GHC version 7.0.4
*** C Compiler:
/usr/bin/gcc -x c /tmp/ghc1733_0/ghc1733_0.hc -o /tmp/ghc1733_0/ghc1733_0.raw_s -fno-stack-protector -fomit-frame-pointer -fno-asynchronous-unwind-tables -fno-builtin -fwrapv -mno-omit-leaf-frame-pointer -fno-toplevel-reorder -fno-strict-aliasing -v -S -Wimplicit -O -D__GLASGOW_HASKELL__=700 -DTABLES_NEXT_TO_CODE -I dist/build/System/INotify -I dist/build -I dist/build/autogen -I dist/build -I /usr/lib64/ghc-7.0.4/directory-1.1.0.0/include -I /usr/lib64/ghc-7.0.4/unix-2.4.2.0/include -I /usr/lib64/ghc-7.0.4/old-time-1.0.0.6/include -I /usr/lib64/ghc-7.0.4/base-4.3.1.0/include -I /usr/lib64/ghc-7.0.4/include
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.6.1/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.6.1 20110627 (Red Hat 4.6.1-1) (GCC) 
COLLECT_GCC_OPTIONS='-o' '/tmp/ghc1733_0/ghc1733_0.raw_s' '-fno-stack-protector' '-fomit-frame-pointer' '-fno-asynchronous-unwind-tables' '-fno-builtin' '-fwrapv' '-mno-omit-leaf-frame-pointer' '-fno-toplevel-reorder' '-fno-strict-aliasing' '-v' '-S' '-Wimplicit' '-O' '-D' '__GLASGOW_HASKELL__=700' '-D' 'TABLES_NEXT_TO_CODE' '-I' 'dist/build/System/INotify' '-I' 'dist/build' '-I' 'dist/build/autogen' '-I' 'dist/build' '-I' '/usr/lib64/ghc-7.0.4/directory-1.1.0.0/include' '-I' '/usr/lib64/ghc-7.0.4/unix-2.4.2.0/include' '-I' '/usr/lib64/ghc-7.0.4/old-time-1.0.0.6/include' '-I' '/usr/lib64/ghc-7.0.4/base-4.3.1.0/include' '-I' '/usr/lib64/ghc-7.0.4/include' '-mtune=generic' '-march=x86-64'
 /usr/libexec/gcc/x86_64-redhat-linux/4.6.1/cc1 -quiet -v -I dist/build/System/INotify -I dist/build -I dist/build/autogen -I dist/build -I /usr/lib64/ghc-7.0.4/directory-1.1.0.0/include -I /usr/lib64/ghc-7.0.4/unix-2.4.2.0/include -I /usr/lib64/ghc-7.0.4/old-time-1.0.0.6/include -I /usr/lib64/ghc-7.0.4/base-4.3.1.0/include -I /usr/lib64/ghc-7.0.4/include -D __GLASGOW_HASKELL__=700 -D TABLES_NEXT_TO_CODE /tmp/ghc1733_0/ghc1733_0.hc -quiet -dumpbase ghc1733_0.hc -mno-omit-leaf-frame-pointer -mtune=generic -march=x86-64 -auxbase-strip /tmp/ghc1733_0/ghc1733_0.raw_s -O -Wimplicit -version -fno-stack-protector -fomit-frame-pointer -fno-asynchronous-unwind-tables -fno-builtin -fwrapv -fno-toplevel-reorder -fno-strict-aliasing -o /tmp/ghc1733_0/ghc1733_0.raw_s
GNU C (GCC) version 4.6.1 20110627 (Red Hat 4.6.1-1) (x86_64-redhat-linux)
	compiled by GNU C version 4.6.1 20110627 (Red Hat 4.6.1-1), GMP version 4.3.2, MPFR version 3.0.0, MPC version 0.9
GGC heuristics: --param ggc-min-expand=80 --param ggc-min-heapsize=93744
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.6.1/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.6.1/../../../../x86_64-redhat-linux/include"
ignoring duplicate directory "dist/build"
#include "..." search starts here:
#include <...> search starts here:
 dist/build/System/INotify
 dist/build
 dist/build/autogen
 /usr/lib64/ghc-7.0.4/directory-1.1.0.0/include
 /usr/lib64/ghc-7.0.4/unix-2.4.2.0/include
 /usr/lib64/ghc-7.0.4/old-time-1.0.0.6/include
 /usr/lib64/ghc-7.0.4/base-4.3.1.0/include
 /usr/lib64/ghc-7.0.4/include
 /usr/lib/gcc/x86_64-redhat-linux/4.6.1/include
 /usr/local/include
 /usr/include
End of search list.
GNU C (GCC) version 4.6.1 20110627 (Red Hat 4.6.1-1) (x86_64-redhat-linux)
	compiled by GNU C version 4.6.1 20110627 (Red Hat 4.6.1-1), GMP version 4.3.2, MPFR version 3.0.0, MPC version 0.9
GGC heuristics: --param ggc-min-expand=80 --param ggc-min-heapsize=93744
Compiler executable checksum: 5705b1cb44120857506c9f7fa83385f4

In file included from /usr/lib64/ghc-7.0.4/include/Stg.h:230:0:
    0,
                     from /tmp/ghc1733_0/ghc1733_0.hc:3:
COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.6.1/:/usr/libexec/gcc/x86_64-redhat-linux/4.6.1/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.6.1/:/usr/lib/gcc/x86_64-redhat-linux/
LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.6.1/:/usr/lib/gcc/x86_64-redhat-linux/4.6.1/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.6.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-o' '/tmp/ghc1733_0/ghc1733_0.raw_s' '-fno-stack-protector' '-fomit-frame-pointer' '-fno-asynchronous-unwind-tables' '-fno-builtin' '-fwrapv' '-mno-omit-leaf-frame-pointer' '-fno-toplevel-reorder' '-fno-strict-aliasing' '-v' '-S' '-Wimplicit' '-O' '-D' '__GLASGOW_HASKELL__=700' '-D' 'TABLES_NEXT_TO_CODE' '-I' 'dist/build/System/INotify' '-I' 'dist/build' '-I' 'dist/build/autogen' '-I' 'dist/build' '-I' '/usr/lib64/ghc-7.0.4/directory-1.1.0.0/include' '-I' '/usr/lib64/ghc-7.0.4/unix-2.4.2.0/include' '-I' '/usr/lib64/ghc-7.0.4/old-time-1.0.0.6/include' '-I' '/usr/lib64/ghc-7.0.4/base-4.3.1.0/include' '-I' '/usr/lib64/ghc-7.0.4/include' '-mtune=generic' '-march=x86-64'
*** Mangler:
/usr/lib64/ghc-7.0.4/ghc-asm /tmp/ghc1733_0/ghc1733_0.raw_s dist/build/System/INotify/Masks.s
*** Assembler:
/usr/bin/gcc -Idist/build/System/INotify -Idist/build -Idist/build/autogen -Idist/build -c dist/build/System/INotify/Masks.s -o dist/build/System/INotify/Masks.o -fno-stack-protector
dist/build/System/INotify/Masks.s: Assembler messages:
dist/build/System/INotify/Masks.s: Error: .size expression for s1xL_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xM_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xO_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xQ_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xS_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xU_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdwmaskIsSet_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xW_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1ui_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xY_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1up_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xZ_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1uw_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1y0_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1uD_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1y1_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1uK_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1y2_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xX_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdwgo_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask22_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask24_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask26_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask28_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask30_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask32_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask34_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask36_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask38_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask40_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask42_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask44_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask46_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask48_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask50_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask52_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask54_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask56_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMask58_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1uO_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_joinMasks_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1y3_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_maskIsSet_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1y4_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1y5_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1y6_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1y8_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yd_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yf_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfOrdMaskzuzdccompare_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yg_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfOrdMaskzuzdczl_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yh_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfOrdMaskzuzdczgze_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yi_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfOrdMaskzuzdczg_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yj_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfOrdMaskzuzdczlze_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yk_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfOrdMaskzuzdcmax_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yl_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfOrdMaskzuzdcmin_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1ym_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yp_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yo_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yn_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1ys_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yr_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yq_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yv_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yu_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yt_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yy_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yx_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yw_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yB_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yA_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yz_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfEqMaskzuzdczeze_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yC_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfEqMaskzuzdczsze_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yD_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMaskzuzdcshowsPrec_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yE_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMaskzuzdcshow_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yF_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yL_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yK_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yJ_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1xF_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yI_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yH_ret does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for s1yG_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_zdfShowMaskzuzdcshowList_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_UserSpace_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_Extra_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_Helper_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_Special_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_All_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_UserSpace_con_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_UserSpace_static_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_Extra_con_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_Extra_static_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_Helper_con_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_Helper_static_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_Special_con_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_Special_static_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_All_con_entry does not evaluate to a constant
dist/build/System/INotify/Masks.s: Error: .size expression for hinotifyzm0zi3zi1_SystemziINotifyziMasks_All_static_entry does not evaluate to a constant
*** Deleting temp files:
Deleting: /tmp/ghc1733_0/ghc1733_0.raw_s /tmp/ghc1733_0/ghc1733_0.hc
*** Deleting temp dirs:
Deleting: /tmp/ghc1733_0
/usr/bin/ghc returned ExitFailure 1

Comment 2 Jens Petersen 2011-06-29 04:52:25 UTC
Note the problem only happens on x86_64 not i686.

Comment 3 Jens Petersen 2011-06-29 04:57:20 UTC
Created attachment 510388 [details]
Masks.s.gz

Here is Masked.s gzipped.

Let me know if there is any more information I can provide.

Comment 4 Jens Petersen 2011-06-29 07:54:42 UTC
I tried building binutils-2.21.52.0.2 but it failed (in gold configuration).

Comment 5 Nick Clifton 2011-06-29 08:46:20 UTC
Hi Jens,

  I think that this might actually be a bug in the ghc-inotify sources.  These error messages from the assembler about "Error: .size expression ..." are real errors.  I suggest that you have a look at the sources and see if you can fix them.

There are two common causes of the error, the first being a typo, eg:

    .size foo, . - fob

 instead of:

    .size foo, . - foo

The second cause is when the size is being defined in a different section from the function.  eg:

  .text
  .foo:
      [...]
  .data
      .word 1
  .size foo, . - foo

In this case the dot symbol (.) is the current location in the .data section, not the .text section, so the expression ". - foo" does not evaluate to an assembly-time constant.



I did look at the Masks.s file which you uploaded, but this appears to be different from the one for which you reported the error messages.  For example the uploaded Masks.s does not have any reference or definition of the symbol "s1xL_ret" anywhere, despite this being the first line reported in your error log.  Similarly when I do assemble the Masks.s file, the first error that I see is:

  Masks.s: Error: .size expression for s1zQ_ret does not evaluate to a constant

which is correct - the symbol s1zQ_ret is not defined - but this error does not show up in your error log.


The reason that this problem has only arisen with the recent binutils releases is that the code to detect bogus .size directives was only recently added to the assembler.  Before then such directives were just silently ignored, and the size of the function was set to zero.

Cheers
  Nick

Comment 6 Jens Petersen 2011-06-29 09:40:33 UTC
Thanks Nick for your careful comment: sorry about the inconsistency
of the .s file - should have thought more carefully when choosing...

Ok, well just to clarify ghc-hinotify is just wrapper of the inotify
C interface - I think the assembler is being generated by ghc.
So perhaps it could be a ghc bug - I will try to dig a bit more
and let you know what I find.

Comment 7 Jens Petersen 2011-07-22 02:27:25 UTC
Created attachment 514605 [details]
Masks.s.gz

Sorry for the long pause: finally had time for a second look...

Ok I think this Masks.s hopefully matches the above error messages:
at least all the s1*_ret symbols seem to be defined here.

Is it possible you could take one more look to see
if the .s file is really broken?

Thanks

Comment 8 Jens Petersen 2011-07-22 03:04:26 UTC
Ah! I noticed that hinotify is passing a -fvia-C option to ghc.
If I remove that hinotify compiles ok with ghc's NCG.

Anyway it looks that it may be a bug in the ghc C backend perhaps
from your comments on the .size error.  i686 seems unaffected though.