summaryrefslogtreecommitdiff
path: root/src/internal/slibtool_linkcmd_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal/slibtool_linkcmd_impl.h')
-rw-r--r--src/internal/slibtool_linkcmd_impl.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/internal/slibtool_linkcmd_impl.h b/src/internal/slibtool_linkcmd_impl.h
new file mode 100644
index 0000000..e1b384e
--- /dev/null
+++ b/src/internal/slibtool_linkcmd_impl.h
@@ -0,0 +1,89 @@
+#ifndef SLIBTOOL_LINKCMD_IMPL_H
+#define SLIBTOOL_LINKCMD_IMPL_H
+
+struct slbt_deps_meta {
+ char ** altv;
+ char * args;
+ int depscnt;
+ int infolen;
+};
+
+int slbt_get_deps_meta(
+ const struct slbt_driver_ctx * dctx,
+ char * libfilename,
+ int fexternal,
+ struct slbt_deps_meta * depsmeta);
+
+int slbt_exec_link_create_dep_file(
+ const struct slbt_driver_ctx * dctx,
+ struct slbt_exec_ctx * ectx,
+ char ** altv,
+ const char * libfilename,
+ bool farchive);
+
+bool slbt_adjust_object_argument(
+ char * arg,
+ bool fpic,
+ bool fany,
+ int fdcwd);
+
+bool slbt_adjust_wrapper_argument(
+ char * arg,
+ bool fpic,
+ const char * suffix);
+
+int slbt_adjust_linker_argument(
+ const struct slbt_driver_ctx * dctx,
+ char * arg,
+ char ** xarg,
+ bool fpic,
+ const char * dsosuffix,
+ const char * arsuffix,
+ struct slbt_deps_meta * depsmeta);
+
+int slbt_exec_link_adjust_argument_vector(
+ const struct slbt_driver_ctx * dctx,
+ struct slbt_exec_ctx * ectx,
+ struct slbt_deps_meta * depsmeta,
+ const char * cwd,
+ bool flibrary);
+
+int slbt_exec_link_finalize_argument_vector(
+ const struct slbt_driver_ctx * dctx,
+ struct slbt_exec_ctx * ectx);
+
+int slbt_exec_link_create_host_tag(
+ const struct slbt_driver_ctx * dctx,
+ struct slbt_exec_ctx * ectx,
+ char * deffilename);
+
+int slbt_exec_link_create_import_library(
+ const struct slbt_driver_ctx * dctx,
+ struct slbt_exec_ctx * ectx,
+ char * impfilename,
+ char * deffilename,
+ char * soname);
+
+int slbt_exec_link_create_archive(
+ const struct slbt_driver_ctx * dctx,
+ struct slbt_exec_ctx * ectx,
+ const char * arfilename,
+ bool fpic,
+ bool fdep);
+
+int slbt_exec_link_create_library(
+ const struct slbt_driver_ctx * dctx,
+ struct slbt_exec_ctx * ectx,
+ const char * dsobasename,
+ const char * dsofilename,
+ const char * relfilename,
+ bool fardlopen,
+ bool fpic);
+
+
+int slbt_exec_link_create_executable(
+ const struct slbt_driver_ctx * dctx,
+ struct slbt_exec_ctx * ectx,
+ const char * exefilename);
+
+#endif