Bug 1023960

Summary: erlang-R16B-02.2.fc20 fails to build on secondary arches
Product: [Fedora] Fedora Reporter: Dan Horák <dan>
Component: erlangAssignee: Peter Lemenkov <lemenkov>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: awilliam, dan, erlang, gustavold, lemenkov, rhbugs
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: AcceptedFreezeException
Fixed In Version: erlang-R16B-02.7.fc19 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-05 12:14:19 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 467765, 980657    

Description Dan Horák 2013-10-28 12:56:26 UTC
erlang-R16B-02 fails to build on secondary arches, seen on ppc and s390, but I guess aarch64 would also fail.

from s390 build.log (http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1243484):
...
gcc  -Werror=return-type   -O3 -fomit-frame-pointer -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches  -m31 -march=z9-109 -mtune=z10 -fno-strict-aliasing -I/builddir/build/BUILD/otp_src_R16B02/erts/s390-ibm-linux-gnu  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-tree-copyrename  -D_GNU_SOURCE -DERTS_SMP -DHAVE_CONFIG_H -Wall -Wstrict-prototypes -Wmissing-prototypes -Wdeclaration-after-statement -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT -DPOSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS   -Is390-ibm-linux-gnu/opt/smp -Ibeam -Isys/unix -Isys/common -Is390-ibm-linux-gnu -Ipcre -Ihipe -I../include -I../include/s390-ibm-linux-gnu -I../include/internal -I../include/internal/s390-ibm-linux-gnu -c beam/erl_bif_info.c -o obj/s390-ibm-linux-gnu/opt/smp/erl_bif_info.o
In file included from beam/erl_bif_info.c:30:0:
beam/erl_bif_info.c: In function 'system_info_1':
beam/erl_bif_info.c:2073:10: error: 'hipe_arch_name' undeclared (first use in this function)
  BIF_RET(hipe_arch_name);
          ^
beam/bif.h:118:28: note: in definition of macro 'BIF_RET'
 #define BIF_RET(x) return (x)
                            ^
beam/erl_bif_info.c:2073:10: note: each undeclared identifier is reported only once for each function it appears in
  BIF_RET(hipe_arch_name);
          ^
beam/bif.h:118:28: note: in definition of macro 'BIF_RET'
 #define BIF_RET(x) return (x)
                            ^
make[3]: Leaving directory `/builddir/build/BUILD/otp_src_R16B02/erts/emulator'
make[3]: *** [obj/s390-ibm-linux-gnu/opt/smp/erl_bif_info.o] Error 1


from ppc build.log (http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1483569):
...
gcc  -Werror=return-type   -O3 -fomit-frame-pointer -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m32 -fno-strict-aliasing -I/builddir/build/BUILD/otp_src_R16B02/erts/powerpc-redhat-linux-gnu  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-tree-copyrename  -D_GNU_SOURCE -DERTS_SMP -DHAVE_CONFIG_H -Wall -Wstrict-prototypes -Wmissing-prototypes -Wdeclaration-after-statement -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT -DPOSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS   -Ipowerpc-redhat-linux-gnu/opt/smp -Ibeam -Isys/unix -Isys/common -Ipowerpc-redhat-linux-gnu -Ipcre -Ihipe -I../include -I../include/powerpc-redhat-linux-gnu -I../include/internal -I../include/internal/powerpc-redhat-linux-gnu -c beam/erl_bif_info.c -o obj/powerpc-redhat-linux-gnu/opt/smp/erl_bif_info.o
In file included from beam/erl_bif_info.c:30:0:
beam/erl_bif_info.c: In function 'system_info_1':
hipe/hipe_ppc.h:63:24: error: 'am_powerpc' undeclared (first use in this function)
 #define hipe_arch_name am_powerpc
                        ^
beam/bif.h:118:28: note: in definition of macro 'BIF_RET'
 #define BIF_RET(x) return (x)
                            ^
beam/erl_bif_info.c:2073:10: note: in expansion of macro 'hipe_arch_name'
  BIF_RET(hipe_arch_name);
          ^
hipe/hipe_ppc.h:63:24: note: each undeclared identifier is reported only once for each function it appears in
 #define hipe_arch_name am_powerpc
                        ^
beam/bif.h:118:28: note: in definition of macro 'BIF_RET'
 #define BIF_RET(x) return (x)
                            ^
beam/erl_bif_info.c:2073:10: note: in expansion of macro 'hipe_arch_name'
  BIF_RET(hipe_arch_name);
          ^
make[3]: *** [obj/powerpc-redhat-linux-gnu/opt/smp/erl_bif_info.o] Error 1
make[3]: Leaving directory `/builddir/build/BUILD/otp_src_R16B02/erts/emulator'



Version-Release number of selected component (if applicable):
erlang-R16B-02.2.fc20


proposed solution:
diff --git a/erlang.spec b/erlang.spec
index 1d4cbfd..50bbe68 100644
--- a/erlang.spec
+++ b/erlang.spec
@@ -966,9 +966,15 @@ rm -f lib/ssl/examples/certs/etc/erlangCA/index.txt.old
 
 %build
 %ifarch sparcv9 sparc64
-CFLAGS="$RPM_OPT_FLAGS -mcpu=ultrasparc -fno-strict-aliasing" %configure --enable-shared-zlib --enable-sctp --enable-hipe
+CFLAGS="$RPM_OPT_FLAGS -mcpu=ultrasparc -fno-strict-aliasing" \
 %else
-CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" %configure --enable-shared-zlib --enable-sctp --enable-hipe
+CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
+%endif
+%configure --enable-shared-zlib --enable-sctp \
+%ifnarch s390 s390x ppc
+    --enable-hipe
+%else
+    %{nil}
 %endif

or maybe using %ifarch with a positive list like %{ix86} x86_64 %{arm} would be even better

Comment 1 Dan Horák 2013-10-28 16:29:06 UTC
http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1485226 is a scratch build with hipe enabled on ppc64 and disabled on ppc

my local test builds on s390 and s390x were successful with hipe disabled using the snippet from above

Comment 2 Peter Lemenkov 2013-10-29 05:40:32 UTC
(In reply to Dan Horák from comment #1)
> http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1485226 is a scratch
> build with hipe enabled on ppc64 and disabled on ppc
> 
> my local test builds on s390 and s390x were successful with hipe disabled
> using the snippet from above

Dan, could you please try the latest build:

http://koji.fedoraproject.org/koji/buildinfo?buildID=474347

Comment 4 Peter Lemenkov 2013-10-29 09:25:31 UTC
(In reply to Dan Horák from comment #3)
> scratch builds started
> http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1244397
> http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1487519

Dan, I'm terribly terribly sorry but I've made a typo in the spec-file which disabled HiPE entirely. Could you please try with the latest build (in progress at the moment of writing):

http://koji.fedoraproject.org/koji/taskinfo?taskID=6111139

Comment 5 Dan Horák 2013-10-29 09:36:32 UTC
(In reply to Peter Lemenkov from comment #4)
> (In reply to Dan Horák from comment #3)
> > scratch builds started
> > http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1244397
> > http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1487519
> 
> Dan, I'm terribly terribly sorry but I've made a typo in the spec-file which
> disabled HiPE entirely. Could you please try with the latest build (in
> progress at the moment of writing):
> 
> http://koji.fedoraproject.org/koji/taskinfo?taskID=6111139

no problem :-) I will start new scratch builds after this one finishes and let you know

Comment 7 Dan Horák 2013-10-29 12:55:49 UTC
all ppc went OK, but s390 failed because now hipe is again unconditionally enabled, the snippet bellow fixes it

diff --git a/erlang.spec b/erlang.spec
index 6c3b085..a850f27 100644
--- a/erlang.spec
+++ b/erlang.spec
@@ -22,8 +22,6 @@
 
 %ifarch %{arm} %{ix86} x86_64 ppc %{power64}
 %global __with_hipe 1
-%else
-%global __with_hipe 0
 %endif
 
 %global n_uvr %{name}-%{upstream_ver}-%{upstream_rel_for_rpm}

the semantics for the "inline condition" looks weird ...

Comment 8 Peter Lemenkov 2013-11-07 07:41:17 UTC
Ok, I think we've fixed that. Dan, could you please try it again with the latest packages.

Comment 9 Dan Horák 2013-11-07 07:59:16 UTC
Peter, thanks for the changes, it must succeed now. The scratch builds are
http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1252454
http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1514758

Comment 10 Dan Horák 2013-11-07 10:25:58 UTC
(In reply to Dan Horák from comment #9)
> Peter, thanks for the changes, it must succeed now. The scratch builds are
> http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1252454
> http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1514758

and both succeeded, please do updates in all branches where R16B-02 should exist

Comment 11 Peter Lemenkov 2013-11-07 10:33:26 UTC
(In reply to Dan Horák from comment #10)
> (In reply to Dan Horák from comment #9)
> > Peter, thanks for the changes, it must succeed now. The scratch builds are
> > http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1252454
> > http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1514758
> 
> and both succeeded, please do updates in all branches where R16B-02 should
> exist

Ok, good! I'll postpone updating F19/F20 until I resolve another one issue (return of ECC in Erlang).

Comment 12 Dan Horák 2013-11-21 16:47:19 UTC
Peter, as I see the crypto stuff is not resolved yet, but missing erlang is causing us some troubles, could you please do the updates for F19/F20?

Comment 13 Peter Lemenkov 2013-11-21 16:55:49 UTC
(In reply to Dan Horák from comment #12)
> Peter, as I see the crypto stuff is not resolved yet, but missing erlang is
> causing us some troubles, could you please do the updates for F19/F20?

Just give me a couple of days more - I'll try to fix it during this weekend. If I won't find a free time for that then I'll rebuild f19 and f20 as is.

Comment 14 Dan Horák 2013-11-21 17:08:53 UTC
(In reply to Peter Lemenkov from comment #13)
> (In reply to Dan Horák from comment #12)
> > Peter, as I see the crypto stuff is not resolved yet, but missing erlang is
> > causing us some troubles, could you please do the updates for F19/F20?
> 
> Just give me a couple of days more - I'll try to fix it during this weekend.
> If I won't find a free time for that then I'll rebuild f19 and f20 as is.

works for me, thanks

Comment 15 Fedora Update System 2013-11-26 13:18:08 UTC
erlang-R16B-02.7.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/erlang-R16B-02.7.fc19

Comment 16 Fedora Update System 2013-11-26 13:18:11 UTC
erlang-R16B-02.7.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/erlang-R16B-02.7.fc20

Comment 17 Fedora Update System 2013-11-26 13:20:05 UTC
erlang-R16B-02.7.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/erlang-R16B-02.7.fc19

Comment 18 Fedora Update System 2013-11-26 18:00:31 UTC
Package erlang-R16B-02.7.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing erlang-R16B-02.7.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-22163/erlang-R16B-02.7.fc20
then log in and leave karma (feedback).

Comment 19 Fedora Blocker Bugs Application 2013-12-02 11:55:09 UTC
Proposed as a Freeze Exception for 20-final by Fedora user sharkcz using the blocker tracking app because:

 Erlang R16B02 was FTBFS on secondary arches

Comment 20 Adam Williamson 2013-12-02 18:43:11 UTC
Discussed at 2013-12-02 freeze exception review meeting: http://meetbot.fedoraproject.org/fedora-blocker-review/2013-12-02/f20-blocker-review-%234.2013-12-02-17.02.log.txt . Accepted as a freeze exception issue as a significant bug for secondary arches whose fix is unlikely to break anything important for primary arches.

Comment 21 Fedora Update System 2013-12-05 12:14:19 UTC
erlang-R16B-02.7.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 22 Fedora Update System 2013-12-09 02:02:34 UTC
erlang-R16B-02.7.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.