Andrew Geissler | 1e34c2d | 2020-05-29 16:02:59 -0500 | [diff] [blame] | 1 | From e0dbcee6e25b3c0cb11a627bbfe3af45ef67ec30 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mingli Yu <mingli.yu@windriver.com> |
| 3 | Date: Thu, 14 May 2020 15:23:16 +0800 |
| 4 | Subject: [PATCH] bison: fix the parallel build |
| 5 | |
| 6 | Explicitly make the BUILT_SOURCES which |
| 7 | are the generated headers such as stdio.h, |
| 8 | fcntl.h and etc to be the dependencies of |
| 9 | the gl_LIBOBJS such as libbison_a-sprintf.o, |
| 10 | libbison_a-printf.o and etc to guarantee the |
| 11 | BUILT_SOURCES is generated before begin to |
| 12 | compile EXTRA_lib_libbison_a_SOURCES such as |
| 13 | fprintf.c in parallel builid, otherwise there |
| 14 | may come below error: |
| 15 | | muscle-tab.c:(.text+0x77a): undefined reference to `rpl_sprintf' |
| 16 | |
| 17 | It does the same for src_bison_OBJECTS and |
| 18 | lib_libbison_a_OBJECTS to make sure BUILT_SOURCES |
| 19 | generated before begin to compile src_bison_SOURCES |
| 20 | which contains AnnotationList.c and etc. |
| 21 | |
| 22 | BTW, the MOSTLYCLEANFILES also contains the |
| 23 | generated header needs to be created early |
| 24 | in the build process, so add it also in to |
| 25 | avoid below error: |
| 26 | | ./lib/uniwidth/width.c:21:10: fatal error: uniwidth.h: No such file or directory |
| 27 | |
| 28 | Upstream-Status: Submitted [bison-patches@gnu.org maillist] |
| 29 | |
| 30 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> |
| 31 | --- |
| 32 | lib/gnulib.mk | 2 ++ |
| 33 | src/local.mk | 1 + |
| 34 | 2 files changed, 3 insertions(+) |
| 35 | |
| 36 | diff --git a/lib/gnulib.mk b/lib/gnulib.mk |
| 37 | index c21c656..27fb3dc 100644 |
| 38 | --- a/lib/gnulib.mk |
| 39 | +++ b/lib/gnulib.mk |
| 40 | @@ -120,6 +120,8 @@ lib_libbison_a_SOURCES = |
| 41 | lib_libbison_a_LIBADD = $(gl_LIBOBJS) |
| 42 | lib_libbison_a_DEPENDENCIES = $(gl_LIBOBJS) |
| 43 | EXTRA_lib_libbison_a_SOURCES = |
| 44 | +$(lib_libbison_a_OBJECTS): $(BUILT_SOURCES) $(MOSTLYCLEANFILES:%.h) |
| 45 | +$(gl_LIBOBJS): $(BUILT_SOURCES) $(MOSTLYCLEANFILES:%.h) |
| 46 | |
| 47 | lib_libbison_a_CPPFLAGS = $(AM_CPPFLAGS) -DDEFAULT_TEXT_DOMAIN=\"bison-gnulib\" |
| 48 | |
| 49 | diff --git a/src/local.mk b/src/local.mk |
| 50 | index 61dc573..b5b9079 100644 |
| 51 | --- a/src/local.mk |
| 52 | +++ b/src/local.mk |
| 53 | @@ -24,6 +24,7 @@ if RELOCATABLE_VIA_LD |
| 54 | src_bison_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)` |
| 55 | endif |
| 56 | |
| 57 | +$(src_bison_OBJECTS): $(BUILT_SOURCES) $(MOSTLYCLEANFILES:%.h) |
| 58 | src_bison_CFLAGS = $(AM_CFLAGS) $(WERROR_CFLAGS) |
| 59 | src_bison_SOURCES = \ |
| 60 | src/AnnotationList.c \ |
| 61 | -- |
| 62 | 2.17.1 |
| 63 | |