/*
- * Copyright (C) - 2018 Francis Deslauriers <francis.deslauriers@efficios.com>
+ * Copyright (C) 2018 Francis Deslauriers <francis.deslauriers@efficios.com>
*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by the
- * Free Software Foundation; version 2.1 of the License.
+ * SPDX-License-Identifier: LGPL-2.1-only
*
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <dlfcn.h>
#include "callsites.h"
#endif
+void exec_callsite();
void exec_callsite()
{
#if HAS_CALLSITES
#endif
}
-void print_list(void)
+static void print_list(void)
{
fprintf(stderr, "Test list (-t X):\n");
fprintf(stderr, "\t0: dlopen() all libraries pass in arguments and execute "
fprintf(stderr, "\t2: simulate the upgrade of a library containing the callsites using dlopen() and dlclose(). \n");
}
-int dl_open_all(int nb_libraries, char **libraries)
+#if HAS_CALLSITES
+static int dl_open_all(int nb_libraries, char **libraries)
{
int i, ret = 0;
void **handles;
free(handles);
return ret;
}
+#endif
+#if HAS_CALLSITES
/*
* Takes 2 paths to libraries, dlopen() the first, trace, dlopen() the second,
* and dlclose the first to simulate the upgrade of a library.
*/
-int upgrade_lib(int nb_libraries, char **libraries)
+static int upgrade_lib(int nb_libraries, char **libraries)
{
int i, ret = 0;
void *handles[2];
error:
return ret;
}
+#endif
+#if !HAS_CALLSITES
/*
* Simulate the upgrade of a library containing a callsite.
* Receives two libraries containing callsites for the same tracepoint.
*/
-int upgrade_callsite(int nb_libraries, char **libraries)
+static int upgrade_callsite(int nb_libraries, char **libraries)
{
int ret = 0;
void *handles[2];
error:
return ret;
}
+#endif
int main(int argc, const char **argv)
{
* Populate the libraries array with the arguments passed to the process.
*/
while (poptPeekArg(optCon) != NULL) {
+ char **realloced_libraries = NULL;
+
nb_libraries++;
- libraries = realloc(libraries, nb_libraries * sizeof(char *));
- if (!libraries) {
+ realloced_libraries = realloc(libraries, nb_libraries * sizeof(char *));
+ if (!realloced_libraries) {
ret = -1;
goto error;
}
+ libraries = realloced_libraries;
libraries[nb_libraries - 1] = (char *) poptGetArg(optCon);
}