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]] -=-=-=-=-=-=-=-=-=-=-=-
