[Intel-gfx] [intelddx][strlcpy | strlcat | clock_gettime] clang-3.8: error: linker command failed with exit code 1

Dave Gordon david.s.gordon at intel.com
Thu Mar 24 12:47:51 UTC 2016


On 24/03/16 11:11, Sedat Dilek wrote:
>  From b35261adb49107e7dd6e480b1f7c5d4fb7552f9f Mon Sep 17 00:00:00 2001
> From: Sedat Dilek<sedat.dilek at gmail.com>
> Date: Thu, 24 Mar 2016 12:01:37 +0100
> Subject: [PATCH 1/3] configure: Remove ACLOCAL_FLAGS to fix libtool vs
>   automake problem
>
> ---
>   Makefile.am | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index c60e8a729271..396f41fdc4df 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -18,7 +18,7 @@
>   #  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
>   #  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
>
> -ACLOCAL_AMFLAGS = $(ACLOCAL_FLAGS) -I m4
> +ACLOCAL_AMFLAGS = -I m4
>
>   SUBDIRS = man libobj xvmc src tools
>
> --

Looks like the issue is related to trying to layer the Make-variable 
expansion.

In the shell (and most other languages) an assignment like:

$ ACLOCAL_AMFLAGS="${ACLOCAL_FLAGS} -I m4"

would take the current value of the existing ACLOCAL_FLAGS variable and 
use it construct the value of the new variable ACLOCAL_AMFLAGS. Thus if 
ACLOCAL_were "--XXX" this would yield "-XXX -I m4". Then later we'd see:

$ aclocal ${ACLOCAL_AMFLAGS} ...

which would use the value as previously defined.

Make doesn't do that. It sets ACLOCAL_AMFLAGS to "$(ACLOCAL_FLAGS) -I 
m4" and then later, when ACLOCAL_AMFLAGS is *used* it expands it, and 
then notices that the expanded version still contains a $(var) construct 
and expands *that* ... and so on until there are none left. This is 
sometimes useful, but often confusing. So GNU make (as POSIX, from 2012 
on) supports another type of assignment,

VAR ::= expression

which does the expansion of <expression> just once, at this point, and 
stores the result rather than the <expression> itself. So, try changing 
the line

ACLOCAL_AMFLAGS = $(ACLOCAL_FLAGS) -I m4

in the Makefile into:

ACLOCAL_AMFLAGS ::= $(ACLOCAL_FLAGS) -I m4

and see whether that helps :)

.Dave.


More information about the Intel-gfx mailing list