Bug 259443

Summary: devel/efl: fix build on armv6/armv7
Product: Ports & Packages Reporter: Robert Clausecker <fuz>
Component: Individual Port(s)Assignee: freebsd-enlightenment (Nobody) <enlightenment>
Status: Closed FIXED    
Severity: Affects Only Me CC: arrowd, mikael, peter
Priority: --- Flags: bugzilla: maintainer-feedback? (enlightenment)
fuz: merge-quarterly?
Version: Latest   
Hardware: arm   
OS: Any   
Attachments:
Description Flags
devel/efl: fix build on armv6/armv7
fuz: maintainer-approval?
devel/efl build log on armv7 FreeBSD 13 (version 1.25.1_15) none

Description Robert Clausecker freebsd_committer freebsd_triage 2021-10-25 18:55:02 UTC
Created attachment 229029 [details]
devel/efl: fix build on armv6/armv7

The attached patch fixes the build of devel/efl on armv6/armv7.  This patch is needed because efl has a number of ARM assembly files that do not assemble with clang's builtin assembler.  Using the GNU assembler fixes this problem and makes the package build fine.

Tested with Poudriere on armv7 FreeBSD 13.

Please MFH if possible.
Comment 1 Peter TKATCHENKO 2021-10-25 19:58:13 UTC
Thanks for the patch.
Could you, please, share the logs of failed build? I'll send it to the developers of EFL. Normally they test the build with Clang (but on Linux), so probably they can fix it one day.
I propose to push the fix for now.
Comment 2 Robert Clausecker freebsd_committer freebsd_triage 2021-10-25 21:42:22 UTC
Created attachment 229032 [details]
devel/efl build log on armv7 FreeBSD 13 (version 1.25.1_15)

See attached file for a build log demonstrating the failure mode.
Comment 3 Mikael Urankar freebsd_committer freebsd_triage 2021-10-26 08:52:02 UTC
why do you need binutils@native?
Comment 4 Mikael Urankar freebsd_committer freebsd_triage 2021-10-26 09:08:41 UTC
it's not related to your patch but it doesn't pass QA

=>> Checking for extra files and directories                                                             
=>> Error: Files or directories left over:                                                               
share/mime/application/edje.xml                                                                          
share/mime/text/edje.xml      
=>> Error: Files or directories modified:
share/mime/globs                
share/mime/globs2                 
share/mime/mime.cache                     
share/mime/types                  
build of devel/efl | efl-1.25.1_16 ended at Tue Oct 26 11:02:39 CEST 2021
Comment 5 commit-hook freebsd_committer freebsd_triage 2021-10-26 09:16:05 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=78d1e7e3c761c7c5821d6bda70d157fa3d179460

commit 78d1e7e3c761c7c5821d6bda70d157fa3d179460
Author:     Robert Clausecker <fuz@fuz.su>
AuthorDate: 2021-10-25 18:52:02 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2021-10-26 09:15:45 +0000

    devel/efl: Fix build on armv6/armv7.

    The clang's integrated assembler is having problems with assembly sources, so
    bring in binutils as.

    PR:             259443

 devel/efl/Makefile | 5 +++++
 1 file changed, 5 insertions(+)
Comment 6 Robert Clausecker freebsd_committer freebsd_triage 2021-10-26 12:01:08 UTC
(In reply to Mikael Urankar from comment #3)

The -no-integrated-as option causes clang to use as(1) for assembly instead of its internal assembler. FreeBSD has stopped shipping as(1) a while ago, so as(1) from binutils is needed on these versions of the OS.  The BUILD_DEPENDS line depending on the command makes sure the dependency is only required when as(1) is not already installed.
Comment 7 Mikael Urankar freebsd_committer freebsd_triage 2021-10-26 12:13:54 UTC
(In reply to Robert Clausecker from comment #6)
I know why we need as, I fixed a few ports the same way. I just don't understand why we need the "native" flavor of binutils.
Comment 8 Robert Clausecker freebsd_committer freebsd_triage 2021-10-26 12:18:53 UTC
(In reply to Mikael Urankar from comment #7)

That's the default flavour for building binutils for the same architecture the operating system is running on.  What flavour did you expect?
Comment 9 Mikael Urankar freebsd_committer freebsd_triage 2021-10-26 12:32:19 UTC
(In reply to Robert Clausecker from comment #8)
None: https://cgit.freebsd.org/ports/tree/multimedia/ffmpeg/Makefile#n16
Comment 10 Robert Clausecker freebsd_committer freebsd_triage 2021-10-26 12:44:13 UTC
(In reply to Mikael Urankar from comment #9)

Ah I see.  That's just identical to using devel/binutils@native as that's the default flavour.
Comment 11 commit-hook freebsd_committer freebsd_triage 2021-10-26 15:02:03 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cc5fac5e3ddff6024c1f32dd91c2de25d234a346

commit cc5fac5e3ddff6024c1f32dd91c2de25d234a346
Author:     Gleb Popov <arrowd@FreeBSD.org>
AuthorDate: 2021-10-26 15:00:11 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2021-10-26 15:01:24 +0000

    devel/efl: Remove @native flavor from binutils dependency.

    PR:             259443
    Reported by:    mikael

 devel/efl/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 12 commit-hook freebsd_committer freebsd_triage 2021-10-26 15:55:14 UTC
A commit in branch 2021Q4 references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=bfda574d1a63d6fe5d5e7218d28c953675ffc508

commit bfda574d1a63d6fe5d5e7218d28c953675ffc508
Author:     Robert Clausecker <fuz@fuz.su>
AuthorDate: 2021-10-25 18:52:02 +0000
Commit:     Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2021-10-26 15:42:11 +0000

    devel/efl: Fix build on armv6/armv7.

    The clang's integrated assembler is having problems with assembly sources, so
    bring in binutils as.

    PR:             259443
    (cherry picked from commit 78d1e7e3c761c7c5821d6bda70d157fa3d179460)

 devel/efl/Makefile | 5 +++++
 1 file changed, 5 insertions(+)
Comment 13 Gleb Popov freebsd_committer freebsd_triage 2021-10-26 15:55:43 UTC
Thanks everyone.