Applied, thanks!
On Fri, Jun 2, 2017 at 10:47 AM, <liu.min...@gmail.com> wrote: > From: Ming Liu <peter.x....@external.atlascopco.com> > > A following linking error was observed: > | ========== > | archival/lib.a(tar.o): In function `tar_main': > | archival/tar.c:1168: undefined reference to `unpack_Z_stream' > | archival/tar.c:1168: undefined reference to `unpack_Z_stream' > | ld: busybox_unstripped: hidden symbol `unpack_Z_stream' isn't defined > | ld: final link failed: Bad value > > this happened with clang compiler, with the following configs: > | CONFIG_TAR=y > | # CONFIG_FEATURE_SEAMLESS_Z is not set > > which can be fixed by adding IF_FEATURE_* checks in. > > Signed-off-by: Ming Liu <peter.x....@external.atlascopco.com> > --- > archival/tar.c | 25 +++++++++++++++---------- > 1 file changed, 15 insertions(+), 10 deletions(-) > > diff --git a/archival/tar.c b/archival/tar.c > index b70e00a..7598b71 100644 > --- a/archival/tar.c > +++ b/archival/tar.c > @@ -1216,21 +1216,26 @@ int tar_main(int argc UNUSED_PARAM, char **argv) > USE_FOR_MMU(IF_DESKTOP(long long) int FAST_FUNC > (*xformer)(transformer_state_t *xstate);) > USE_FOR_NOMMU(const char *xformer_prog;) > > - if (opt & OPT_COMPRESS) > - USE_FOR_MMU(xformer = unpack_Z_stream;) > + if (opt & OPT_COMPRESS) { > + USE_FOR_MMU(IF_FEATURE_SEAMLESS_Z(xformer = > unpack_Z_stream;)) > USE_FOR_NOMMU(xformer_prog = "uncompress";) > - if (opt & OPT_GZIP) > - USE_FOR_MMU(xformer = unpack_gz_stream;) > + } > + if (opt & OPT_GZIP) { > + USE_FOR_MMU(IF_FEATURE_SEAMLESS_GZ(xformer = > unpack_gz_stream;)) > USE_FOR_NOMMU(xformer_prog = "gunzip";) > - if (opt & OPT_BZIP2) > - USE_FOR_MMU(xformer = unpack_bz2_stream;) > + } > + if (opt & OPT_BZIP2) { > + USE_FOR_MMU(IF_FEATURE_SEAMLESS_BZ2(xformer = > unpack_bz2_stream;)) > USE_FOR_NOMMU(xformer_prog = "bunzip2";) > - if (opt & OPT_LZMA) > - USE_FOR_MMU(xformer = unpack_lzma_stream;) > + } > + if (opt & OPT_LZMA) { > + USE_FOR_MMU(IF_FEATURE_SEAMLESS_LZMA(xformer = > unpack_lzma_stream;)) > USE_FOR_NOMMU(xformer_prog = "unlzma";) > - if (opt & OPT_XZ) > - USE_FOR_MMU(xformer = unpack_xz_stream;) > + } > + if (opt & OPT_XZ) { > + USE_FOR_MMU(IF_FEATURE_SEAMLESS_XZ(xformer = > unpack_xz_stream;)) > USE_FOR_NOMMU(xformer_prog = "unxz";) > + } > > fork_transformer_with_sig(tar_handle->src_fd, xformer, > xformer_prog); > /* Can't lseek over pipes */ > -- > 2.7.4 > _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox