From: Martin Quinson Date: Wed, 19 Dec 2012 18:41:07 +0000 (+0100) Subject: forgot the test file X-Git-Tag: v3_9_rc1~86^2~88 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/22ff6a49b0593f2164d8c4c6244bff1a8bb16d86 forgot the test file --- diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index 2f074b3ad8..32264f5509 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -755,6 +755,7 @@ set(CMAKE_SOURCE_FILES buildtools/Cmake/test_prog/prog_thread_storage.c buildtools/Cmake/test_prog/prog_va_copy.c buildtools/Cmake/test_prog/prog_vsnprintf.c + buildtools/Cmake/test_prog/prog_gnu_dynlinker.c ) set(PLATFORMS_EXAMPLES diff --git a/buildtools/Cmake/test_prog/prog_gnu_dynlinker.c b/buildtools/Cmake/test_prog/prog_gnu_dynlinker.c new file mode 100644 index 0000000000..d48b891ba0 --- /dev/null +++ b/buildtools/Cmake/test_prog/prog_gnu_dynlinker.c @@ -0,0 +1,32 @@ +/* prog_gnu_dynlinker.c -- check that RTLD_NEXT is defined as in GNU linker */ +/* Copyright (c) 2012. The SimGrid Team. All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + +#define _GNU_SOURCE 1 +#include +#include +#include +#include + +static void * (*real_malloc) (size_t); + +int main(void) { + char *error; + dlerror(); // clear any previous error + real_malloc = (void * (*) (size_t)) dlsym(RTLD_NEXT, "malloc"); + error = dlerror(); + if (!error && real_malloc) { + char *A = real_malloc(20); + strcpy(A,"epic success"); + free(A); + return 0; // SUCCESS + } else { + if (error) + printf("Error while checking for dlsym: %s\n",error); + else + printf("dlsym did not return any error, but failed to find malloc()\n",error); + return 1; // FAILED + } +}