[LTP] [RFC] [PATCH] lib32: Add support for linking 32bit programs on 64bit

Richard Palethorpe rpalethorpe@suse.com
Tue Mar 28 16:55:36 CEST 2017


Hi Metan!

On Tue, 28 Mar 2017 12:01:14 +0200
"Cyril Hrubis" <chrubis@suse.cz> wrote:

> This is proof of concept for building 32bit testcases on 64bit platform.

Great thanks! I have tried running it and have a couple of minor issues.

> 
> What we do is:
> 
> * Configure test if compiler supports -m32
>   TODO: Does 32bit compiler accept -m32?
>         If so, we should fail the test on 32bit
> 	platforms by default.
> 
> * The directory lib32 contains symlinks of minimal set of sources
>   needed to link newlib testcase + Makefile.

Apparently missing safe_socket which is required for cve-2016-4997.c, but that
is easy to fix I suppose.

> 
> * The testcases.mk builds 32bit library as well if
>   32bit compiler was installed (-m32 configure test was succesful)
> 
> * And finally the env_post.mk switches between lib and lib32 depeding
>   on if -m32 was passed in the CFLAGS

I added "cve-2016-4997: CFLAGS += -m32" and it still tried to look in
"../../lib"

> +ifeq ($(filter -m32,$(CFLAGS)),)
>  LDFLAGS				+= -L$(top_builddir)/lib
> +else
> +LDFLAGS				+= -L$(top_builddir)/lib32
> +endif

I was able to remove the if statement (i.e. put both dirs on the search path)
and the 64-bit tests still compiled fine and so did the 32-bit test, although
maybe not all linkers can be trusted to ignore libs with the wrong number of
bits.

Thank you,
Richard.


More information about the ltp mailing list