Fix cross link using autoconf detected AR If building on 32bit host and creating 64bit libraries, the target package builds should not invoke the 32bit hosts's ar. Specifically you will get an error message like: x86_64-linux-gcc -m64 --sysroot=/opt/qemux86-64/tmp/sysroots/qemux86-64 -g -o test test.o libnewt.a -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -lslang libnewt.a: could not read symbols: Archive has no index; run ranlib to add one collect2: error: ld returned 1 exit status Signed-off-by: Jason Wessel Upstream-Status: Pending --- Makefile.in | 3 ++- configure.ac | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) --- a/Makefile.in +++ b/Makefile.in @@ -7,6 +7,7 @@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ CPPFLAGS = -D_GNU_SOURCE @CPPFLAGS@ GNU_LD = @GNU_LD@ +AR = @AR@ VERSION = @VERSION@ TAG = r$(subst .,-,$(VERSION)) @@ -95,7 +96,7 @@ whiptcl.so: $(WHIPTCLOBJS) $(LIBNEWTSH) $(CC) -shared $(SHCFLAGS) $(LDFLAGS) -o whiptcl.so $(WHIPTCLOBJS) -L. -lnewt $(LIBTCL) -lpopt $(LIBS) $(LIBNEWT): $(LIBOBJS) - ar rv $@ $^ + $(AR) rv $@ $^ newt.o $(SHAREDDIR)/newt.o: newt.c Makefile --- a/configure.ac +++ b/configure.ac @@ -14,6 +14,10 @@ AC_PROG_CC AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_GREP +AN_MAKEVAR([AR], [AC_PROG_AR]) +AN_PROGRAM([ar], [AC_PROG_AR]) +AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)]) +AC_PROG_AR # Are we using GNU ld? AC_MSG_CHECKING([for GNU ld])