This patch itself should be first upstreamed 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 (#88652): https://lists.openembedded.org/g/openembedded-devel/message/88652 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]] -=-=-=-=-=-=-=-=-=-=-=-
