On Tue, Feb 19, 2019 at 4:13 AM Ben Hutchings <ben@xxxxxxxxxxxxxxx> wrote: > > On Tue, 2019-02-19 at 02:05 +0900, Masahiro Yamada wrote: > [...] > > "make allnoconfig; make bindeb-pkg" > > failed on Ubuntu 16.04, but succeeded on Ubuntu 18.04 > > > > I am puzzled... > [...] > > dpkg-buildpackage: host architecture i386 > > dpkg-source --before-build linux > > dpkg-checkbuilddeps: error: Unmet build dependencies: flex > > dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting > > dpkg-buildpackage: warning: (Use -d flag to override.) > > scripts/package/Makefile:78: recipe for target 'bindeb-pkg' failed > > make[1]: *** [bindeb-pkg] Error 3 > > Makefile:1390: recipe for target 'bindeb-pkg' failed > > make: *** [bindeb-pkg] Error 2 > > > > > > The docker file I used is below. > > > > If I change "FROM ubuntu:16.04" to "FROM ubuntu:18.04", > > it goes well. > [...] > > For a cross-build, some build-dependencies may need to belong to the > host architecture (what the package will run on) while others do not. > In general, they must do one of: > > (a) Belong to the host architecture > (b) Belong to any architecture, and include "Multi-Arch: foreign" in > their own metadata > (c) Belong to an architecture specified in the Build-Depends field > > We normally want (b) for tools like flex. But flex is (I assume) > missing the Multi-Arch field in Ubuntu 16.04, as it used to in Debian. > > The way we dealt with this in Debian before flex was fixed was (c): use > "flex:native". But for reasons I don't understand that *isn't* > compatible with (b), so to be compatible with both old and new versions > of flex you should build-depend on: > > flex | flex:native Yes, it worked with this fix. Thanks. -- Best Regards Masahiro Yamada