Hi Khem,

> This patch itself should be first upstreamed

I had some doubts that removing -Werror would find love upstream.
That's why I started investigating which warning caused the
compilation to break. And then I realized that the upstream already
compiles just fine with Clang 11 from https://apt.llvm.org/ on Ubuntu
20.04.

Additionally, the removal of
    ifneq ($(call pathsearch,$(COMPILER_clang)),)
breaks the use of make without additional parameters and
auto-detection of the installed compilers. That's what I experienced
on Ubuntu with gcc before installing clang.

> On Sat, Jan 9, 2021 at 9:02 AM Mark Jonas <[email protected]> wrote:
>>
>> Hi Khem,
>>
>> I wanted to create a patch for beep's mainline so it could be used in
>> meta-openembedded without your patch. That is, what hinders
>> compilation with Clang 11 and -Werror. To my astonishment the
>> unmodified beep v1.4.9 compiles just fine with clang-11 from
>> https://apt.llvm.org/ on Ubuntu 20.04. And it definitely fails when
>> building with meta-clang without your patch.
>>
>> What is the difference between the two Clangs?
>>
>> I have to admit that this is the first time I used clang.
>>
>> $ clang-11 --version
>> Ubuntu clang version
>> 11.0.1-++20201218093155+43ff75f2c3fe-1~exp1~20201218203809.158
>> Target: x86_64-pc-linux-gnu
>> Thread model: posix
>> InstalledDir: /usr/bin
>>
>> $ make COMPILER_gcc=no COMPILER_clang=clang-11 LINKER_clang=clang-11
>> /bin/sed  -e s/@PACKAGE_TARNAME@/beep/g -e s/@PACKAGE_VERSION@/1.4.9/g
>> -e s/@DEFAULT_FREQ@/440/g -e s/@DEFAULT_LENGTH@/200/g -e
>> s/@DEFAULT_DELAY@/100/g -e 's|[@]pkgdocdir@|/usr/share/doc/beep|g' <
>> beep-config.h.in > beep-config.h.new
>> mv -f beep-config.h.new beep-config.h
>> clang-11 -MT beep-main.clang-o -MMD -MP -MF
>> .deps/beep-main.clang-o.dep   -DPACKAGE_TARNAME='"beep"'
>> -DPACKAGE_VERSION='"1.4.9"'    -Wall -Wextra -Weverything -Wno-padded
>> -std=gnu99 -pedantic -Werror -fsanitize=undefined -O -g -o
>> beep-main.clang-o -c beep-main.c
>> /bin/sed  -e s/@PACKAGE_TARNAME@/beep/g -e s/@PACKAGE_VERSION@/1.4.9/g
>> -e s/@DEFAULT_FREQ@/440/g -e s/@DEFAULT_LENGTH@/200/g -e
>> s/@DEFAULT_DELAY@/100/g -e 's|[@]pkgdocdir@|/usr/share/doc/beep|g' <
>> beep-usage.txt.in > beep-usage.txt.new
>> mv -f beep-usage.txt.new beep-usage.txt
>> echo '/* Auto-generated from `beep-usage.txt`. Modify that file
>> instead. */' > beep-usage.c
>> echo '#include "beep-usage.h"' >> beep-usage.c
>> echo 'char beep_usage[] =' >> beep-usage.c
>> set -e; IFS=""; while read line; do \
>>     printf '  "%s\\n"\n' "${line}" >> beep-usage.c; \
>> done < beep-usage.txt
>> echo '  ;' >> beep-usage.c
>> clang-11 -MT beep-usage.clang-o -MMD -MP -MF
>> .deps/beep-usage.clang-o.dep   -DPACKAGE_TARNAME='"beep"'
>> -DPACKAGE_VERSION='"1.4.9"'    -Wall -Wextra -Weverything -Wno-padded
>> -std=gnu99 -pedantic -Werror -fsanitize=undefined -O -g -o
>> beep-usage.clang-o -c beep-usage.c
>> clang-11  -Wall -Wextra -Weverything -Wno-padded -std=gnu99 -pedantic
>> -Werror -fsanitize=undefined -O -g   -o beep.clang beep-log.clang-o
>> beep-main.clang-o beep-library.clang-o beep-usage.clang-o
>> beep-drivers.clang-o beep-driver-console.clang-o
>> beep-driver-evdev.clang-o
>> cp -f beep.clang beep
>> /bin/sed  -e s/@PACKAGE_TARNAME@/beep/g -e s/@PACKAGE_VERSION@/1.4.9/g
>> -e s/@DEFAULT_FREQ@/440/g -e s/@DEFAULT_LENGTH@/200/g -e
>> s/@DEFAULT_DELAY@/100/g -e 's|[@]pkgdocdir@|/usr/share/doc/beep|g' <
>> beep.1.in > beep.1.new
>> mv -f beep.1.new beep.1
>>
>> Cheers,
>> Mark
>>
>> On Thu, Dec 24, 2020 at 7:59 AM Khem Raj <[email protected]> wrote:
>> >
>> > From: Mark Jonas <[email protected]>
>> >
>> > The previous version 1.2.2 of beep was provided by
>> > http://johnath.com/beep and was released in 2002. The latest version 1.3
>> > was released 2010-07-13. On https://github.com/johnath/beep the
>> > development stopped 2013-02-07.
>> >
>> > In 2018 a developer worked on fixing CVE-2018-1000532 and realized that
>> > fixing this would be more than just a simple patch. Because the original
>> > repository was unmaintained for several years he created
>> > https://github.com/spkr-beep/beep as the new home for beep.
>> >
>> > Debian switched to the new beep with Buster.
>> >     https://packages.debian.org/buster/beep
>> >
>> > Alpine 3.11, Arch Linux, Fedora, and Ubuntu 20.04 also switched to the
>> > same new beep.
>> >
>> > Fix build with clang
>> >
>> > Signed-off-by: Mark Jonas <[email protected]>
>> > Signed-off-by: Khem Raj <[email protected]>
>> > ---
>> > v2: Fix build with clang
>> > v3: Do not build with both clang and gcc
>> >
>> >  meta-oe/recipes-extended/beep/beep_1.2.2.bb   | 25 --------
>> >  meta-oe/recipes-extended/beep/beep_1.4.9.bb   | 32 ++++++++++
>> >  ...rror-as-it-fails-with-newer-clang-11.patch | 63 +++++++++++++++++++
>> >  3 files changed, 95 insertions(+), 25 deletions(-)
>> >  delete mode 100644 meta-oe/recipes-extended/beep/beep_1.2.2.bb
>> >  create mode 100644 meta-oe/recipes-extended/beep/beep_1.4.9.bb
>> >  create mode 100644 
>> > meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch
>> >
>> > diff --git a/meta-oe/recipes-extended/beep/beep_1.2.2.bb 
>> > b/meta-oe/recipes-extended/beep/beep_1.2.2.bb
>> > deleted file mode 100644
>> > index cafc869645..0000000000
>> > --- a/meta-oe/recipes-extended/beep/beep_1.2.2.bb
>> > +++ /dev/null
>> > @@ -1,25 +0,0 @@
>> > -DESCRIPTION = "beep is a command line tool for linux that beeps the PC 
>> > speaker"
>> > -LICENSE = "GPL-2.0"
>> > -LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
>> > -
>> > -SRC_URI = "\
>> > -    http://johnath.com/beep/beep-${PV}.tar.gz \
>> > -    file://linux-input.patch \
>> > -"
>> > -
>> > -SRC_URI[sha256sum] = 
>> > "5c0445dac43950b7c7c3f235c6fb21f620ab3fd2f3aafaf09896e5730fcf49a1"
>> > -
>> > -S = "${WORKDIR}/${BPN}-${PV}"
>> > -
>> > -EXTRA_OEMAKE += 'CC="${CC}"'
>> > -EXTRA_OEMAKE += 'FLAGS="${CFLAGS} ${LDFLAGS}"'
>> > -
>> > -do_configure[noexec] = "1"
>> > -
>> > -do_compile() {
>> > -   oe_runmake
>> > -}
>> > -
>> > -do_install() {
>> > -       install -Dm 0755 ${B}/${PN} ${D}${bindir}/${PN}
>> > -}
>> > diff --git a/meta-oe/recipes-extended/beep/beep_1.4.9.bb 
>> > b/meta-oe/recipes-extended/beep/beep_1.4.9.bb
>> > new file mode 100644
>> > index 0000000000..8d332b2faf
>> > --- /dev/null
>> > +++ b/meta-oe/recipes-extended/beep/beep_1.4.9.bb
>> > @@ -0,0 +1,32 @@
>> > +SUMMARY = "beep allows you to have the PC speaker issue beeps and beep 
>> > patterns"
>> > +DESCRIPTION = "beep allows you to have the PC speaker issue beeps and 
>> > beep \
>> > +patterns with given frequencies, durations, and spacing."
>> > +HOMEPAGE = "https://github.com/spkr-beep/beep";
>> > +BUGTRACKER = "https://github.com/spkr-beep/beep/issues";
>> > +
>> > +LICENSE = "GPLv2+"
>> > +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
>> > +
>> > +SRC_URI = "git://github.com/spkr-beep/beep.git;protocol=https \
>> > +           
>> > file://0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch \
>> > +"
>> > +SRCREV = "8b85ddd09f73b9fd7caa5679298781a57af194ac"
>> > +S = "${WORKDIR}/git"
>> > +
>> > +EXTRA_OEMAKE = " \
>> > +    COMPILER_gcc='${CC}' \
>> > +    LINKER_gcc='${CC}' \
>> > +    COMPILER_clang=no \
>> > +    LINKER_clang=no \
>> > +"
>> > +
>> > +EXTRA_OEMAKE_toolchain-clang = " \
>> > +    COMPILER_clang='${CC}' \
>> > +    LINKER_clang='${CC}' \
>> > +    COMPILER_gcc=no \
>> > +    LINKER_gcc=no \
>> > +"
>> > +
>> > +do_install() {
>> > +    oe_runmake install DESTDIR='${D}'
>> > +}
>> > diff --git 
>> > a/meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch
>> >  
>> > b/meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch
>> > new file mode 100644
>> > index 0000000000..ba7681b983
>> > --- /dev/null
>> > +++ 
>> > b/meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch
>> > @@ -0,0 +1,63 @@
>> > +From 6b33adfa438e35b6a37cfb0364274370ef4f9fc1 Mon Sep 17 00:00:00 2001
>> > +From: Khem Raj <[email protected]>
>> > +Date: Wed, 23 Dec 2020 18:00:59 +0000
>> > +Subject: [PATCH] Do not use -Werror as it fails with newer clang 11+
>> > +
>> > +Upstream-Status: Pending
>> > +Signed-off-by: Khem Raj <[email protected]>
>> > +---
>> > + GNUmakefile | 1 -
>> > + 1 file changed, 1 deletion(-)
>> > +
>> > +--- a/GNUmakefile
>> > ++++ b/GNUmakefile
>> > +@@ -91,12 +91,13 @@ comma := ,
>> > + # If supported by COMPILER_gcc, add given flags to CFLAGS_gcc.
>> > + # Example usage:
>> > + #   $(eval $(call CHECK_CFLAGS_gcc,-fasynchronous-unwind-tables))
>> > +-define CHECK_CFLAGS_gcc
>> > +-CFLAGS_gcc += $$(if $$(shell if $$(COMPILER_gcc) $(1) -x c -o 
>> > compile-check.gcc-o -c - < /dev/null > /dev/null 2>&1; then echo yes; else 
>> > :; fi; rm -f compile-check.gcc-o > /dev/null 2>&1),$(1))
>> > +-endef
>> > +
>> > + COMPILER_gcc = gcc
>> > + LINKER_gcc = gcc
>> > ++ifneq ($(COMPILER_gcc),no)
>> > ++define CHECK_CFLAGS_gcc
>> > ++CFLAGS_gcc += $$(if $$(shell if $$(COMPILER_gcc) $(1) -x c -o 
>> > compile-check.gcc-o -c - < /dev/null > /dev/null 2>&1; then echo yes; else 
>> > :; fi; rm -f compile-check.gcc-o > /dev/null 2>&1),$(1))
>> > ++endef
>> > + CPPFLAGS_gcc =
>> > + CFLAGS_gcc =
>> > + CFLAGS_gcc += -std=gnu99 -pedantic
>> > +@@ -113,30 +114,24 @@ CFLAGS_gcc += -save-temps=obj
>> > + LDFLAGS_gcc =
>> > + LIBS_gcc =
>> > +
>> > +-ifneq ($(call pathsearch,$(COMPILER_gcc)),)
>> > +-ifneq ($(COMPILER_gcc)),no)
>> > + COMPILERS += gcc
>> > + endif
>> > +-endif
>> > +
>> > + COMPILER_clang = clang
>> > + LINKER_clang = clang
>> > ++
>> > ++ifneq ($(COMPILER_clang),no)
>> > + CPPFLAGS_clang =
>> > + CFLAGS_clang += -Wall -Wextra
>> > + CFLAGS_clang += -Weverything
>> > + CFLAGS_clang += -Wno-padded
>> > + CFLAGS_clang += -std=gnu99 -pedantic
>> > +-CFLAGS_clang += -Werror
>> > +-CFLAGS_clang += -fsanitize=undefined
>> > + CFLAGS_clang += -O -g
>> > + LDFLAGS_clang =
>> > + LIBS_clang =
>> > +
>> > +-ifneq ($(call pathsearch,$(COMPILER_clang)),)
>> > +-ifneq ($(COMPILER_clang),no)
>> > + COMPILERS += clang
>> > + endif
>> > +-endif
>> > +
>> > +
>> > + ########################################################################
>> > --
>> > 2.29.2
>> >
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#88654): 
https://lists.openembedded.org/g/openembedded-devel/message/88654
Mute This Topic: https://lists.openembedded.org/mt/79198024/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to