From 0e0ab8318bb91734dc2f0b4e66997d3eb0d380c8 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Thu, 21 May 2015 22:14:37 -0500 Subject: [PATCH] pkg: pkg_libs(): consider both Libs and Libs.private fragments at the same time instead of separately (fixes many ordering problems with --static) (closes #68) --- pkg.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/pkg.c b/pkg.c index cb25656..f58d309 100644 --- a/pkg.c +++ b/pkg.c @@ -1039,23 +1039,16 @@ pkg_libs_collect(pkg_t *pkg, void *data, unsigned int flags) PKG_FOREACH_LIST_ENTRY(pkg->libs.head, node) { pkg_fragment_t *frag = node->data; - pkg_fragment_copy(list, frag, flags); } -} -static void -pkg_libs_private_collect(pkg_t *pkg, void *data, unsigned int flags) -{ - pkg_list_t *list = data; - pkg_node_t *node; - (void) flags; - - PKG_FOREACH_LIST_ENTRY(pkg->libs_private.head, node) + if (flags & PKGF_MERGE_PRIVATE_FRAGMENTS) { - pkg_fragment_t *frag = node->data; - - pkg_fragment_copy(list, frag, flags); + PKG_FOREACH_LIST_ENTRY(pkg->libs_private.head, node) + { + pkg_fragment_t *frag = node->data; + pkg_fragment_copy(list, frag, flags); + } } } @@ -1072,12 +1065,5 @@ pkg_libs(pkg_t *root, pkg_list_t *list, int maxdepth, unsigned int flags) return eflag; } - if (flags & PKGF_MERGE_PRIVATE_FRAGMENTS) - { - eflag = pkg_traverse(root, pkg_libs_private_collect, list, maxdepth, flags); - if (eflag != PKG_ERRF_OK) - pkg_fragment_free(list); - } - return eflag; }