]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blame - src/patches/libsatsolver-Create-linker-scripts-that-do-only-export-the-needed.patch
Merge branch 'master' into next
[people/teissler/ipfire-2.x.git] / src / patches / libsatsolver-Create-linker-scripts-that-do-only-export-the-needed.patch
CommitLineData
93aa811e
SS
1>From a42d7e17fa3e39a8306126c19f1b3b54f1fdd79e Mon Sep 17 00:00:00 2001
2From: Michael Tremer <michael.tremer@ipfire.org>
3Date: Thu, 21 Apr 2011 16:40:11 +0200
4Subject: [PATCH] Create linker-scripts that do only export the needed symbols
5 of libsatsolver{,ext}.
6
7See these posts for reference:
8 http://lists.opensuse.org/zypp-devel/2011-04/msg00012.html
9 http://lists.opensuse.org/zypp-devel/2011-04/msg00014.html
10
11Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
12---
13 ext/CMakeLists.txt | 1 +
14 ext/libsatsolverext.ver | 25 ++++
15 src/CMakeLists.txt | 1 +
16 src/libsatsolver.ver | 355 +++++++++++++++++++++++++++++++++++++++++++++++
17 4 files changed, 382 insertions(+), 0 deletions(-)
18 create mode 100644 ext/libsatsolverext.ver
19 create mode 100644 src/libsatsolver.ver
20
21diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt
22index 68e1c3c..d51a43b 100644
23--- a/ext/CMakeLists.txt
24+++ b/ext/CMakeLists.txt
25@@ -21,6 +21,7 @@ SET(libsatsolverext_HEADERS
26 tools_util.h repo_deb.h sat_xfopen.h)
27
28 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
29+SET(CMAKE_SHARED_LINKER_FLAGS "${LINK_FLAGS} -Wl,--version-script=${satsolver_SOURCE_DIR}/ext/libsatsolverext.ver")
30
31 INSTALL(FILES ${libsatsolverext_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/satsolver")
32 INSTALL(TARGETS satsolverext LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
33diff --git a/ext/libsatsolverext.ver b/ext/libsatsolverext.ver
34new file mode 100644
35index 0000000..4869d37
36--- /dev/null
37+++ b/ext/libsatsolverext.ver
38@@ -0,0 +1,25 @@
39+EXT1.0 {
40+ global:
41+ repo_add_code11_products;
42+ repo_add_content;
43+ repo_add_deb;
44+ repo_add_debdb;
45+ repo_add_debpackages;
46+ repo_add_debs;
47+ repo_add_deltainfoxml;
48+ repo_add_helix;
49+ repo_add_products;
50+ repo_add_releasefile_products;
51+ repo_add_repomdxml;
52+ repo_add_rpmmd;
53+ repo_add_susetags;
54+ repo_add_updateinfoxml;
55+ repo_add_zyppdb_products;
56+ repodata_write;
57+ repo_write;
58+ repo_write_stdkeyfilter;
59+ sat_xfopen;
60+ sat_xfopen_fd;
61+ local:
62+ *;
63+};
64diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
65index 6a14d10..b54d01d 100644
66--- a/src/CMakeLists.txt
67+++ b/src/CMakeLists.txt
68@@ -20,6 +20,7 @@ SET(libsatsolver_HEADERS
69 chksum.h md5.h sha1.h sha2.h ${CMAKE_BINARY_DIR}/src/satversion.h)
70
71 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
72+SET(CMAKE_SHARED_LINKER_FLAGS "${LINK_FLAGS} -Wl,--version-script=${satsolver_SOURCE_DIR}/src/libsatsolver.ver")
73
74 INSTALL(FILES ${libsatsolver_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/satsolver")
75 INSTALL(TARGETS satsolver LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
76diff --git a/src/libsatsolver.ver b/src/libsatsolver.ver
77new file mode 100644
78index 0000000..dab3576
79--- /dev/null
80+++ b/src/libsatsolver.ver
81@@ -0,0 +1,355 @@
82+SAT1.0 {
83+ global:
84+ dataiterator_clonepos;
85+ dataiterator_entersub;
86+ dataiterator_free;
87+ dataiterator_init;
88+ dataiterator_init_clone;
89+ dataiterator_jump_to_repo;
90+ dataiterator_jump_to_solvid;
91+ dataiterator_match;
92+ dataiterator_prepend_keyname;
93+ dataiterator_seek;
94+ dataiterator_set_keyname;
95+ dataiterator_set_match;
96+ dataiterator_setpos;
97+ dataiterator_setpos_parent;
98+ dataiterator_set_search;
99+ dataiterator_skip_attribute;
100+ dataiterator_skip_repo;
101+ dataiterator_skip_solvable;
102+ dataiterator_step;
103+ datamatcher_free;
104+ datamatcher_init;
105+ datamatcher_match;
106+ data_read_idarray;
107+ data_read_rel_idarray;
108+ data_skip_key;
109+ dep2str;
110+ dirpool_add_dir;
111+ dirpool_free;
112+ dirpool_init;
113+ dirpool_make_dirtraverse;
114+ evrcmp;
115+ evrmatch;
116+ id2str;
117+ map_free;
118+ map_grow;
119+ map_init;
120+ map_init_clone;
121+ policy_create_obsolete_index;
122+ policy_filter_unwanted;
123+ policy_findupdatepackages;
124+ policy_illegal2str;
125+ policy_illegal_archchange;
126+ policy_illegal_vendorchange;
127+ policy_is_illegal;
128+ pool_add_fileconflicts_deps;
129+ pool_addfileprovides;
130+ pool_addfileprovides_ids;
131+ pool_addrelproviders;
132+ pool_add_solvable;
133+ pool_add_solvable_block;
134+ pool_alloctmpspace;
135+ pool_arch2color_slow;
136+ pool_bin2hex;
137+ pool_calc_duchanges;
138+ pool_calc_installsizechange;
139+ pool_clear_pos;
140+ pool_create;
141+ pool_create_state_maps;
142+ pool_createwhatprovides;
143+ pool_debug;
144+ pool_free;
145+ pool_freeidhashes;
146+ pool_free_solvable_block;
147+ pool_freetmpspace;
148+ pool_freewhatprovides;
149+ pool_id2langid;
150+ pool_job2str;
151+ pool_lookup_bin_checksum;
152+ pool_lookup_checksum;
153+ pool_lookup_id;
154+ pool_lookup_num;
155+ pool_lookup_str;
156+ pool_lookup_void;
157+ pool_match_dep;
158+ pool_match_nevr_rel;
159+ pool_queuetowhatprovides;
160+ pool_search;
161+ pool_setarch;
162+ pool_setarchpolicy;
163+ pool_setdebuglevel;
164+ pool_set_installed;
165+ pool_set_languages;
166+ pool_setvendorclasses;
167+ pool_shrink_rels;
168+ pool_shrink_strings;
169+ pool_tmpappend;
170+ pool_tmpjoin;
171+ pool_trivial_installable;
172+ pool_trivial_installable_noobsoletesmap;
173+ pool_vendor2mask;
174+ prune_best_arch_name_version;
175+ prune_to_best_arch;
176+ prune_to_best_version;
177+ queue_alloc_one;
178+ queue_alloc_one_head;
179+ queue_delete;
180+ queue_delete2;
181+ queue_deleten;
182+ queue_free;
183+ queue_init;
184+ queue_init_buffer;
185+ queue_init_clone;
186+ queue_insert;
187+ queue_insert2;
188+ queue_insertn;
189+ rel2id;
190+ repo_addid;
191+ repo_addid_dep;
192+ repo_add_poolstr_array;
193+ repo_add_repodata;
194+ repo_add_solv;
195+ repo_add_solv_flags;
196+ repo_create;
197+ repodata_add_dirnumnum;
198+ repodata_add_dirstr;
199+ repodata_add_fixarray;
200+ repodata_add_flexarray;
201+ repodata_add_idarray;
202+ repodata_add_poolstr_array;
203+ repodata_chk2str;
204+ repodata_create;
205+ repodata_create_stubs;
206+ repodata_delete;
207+ repodata_delete_uninternalized;
208+ repodata_dir2str;
209+ repodata_disable_paging;
210+ repodata_empty;
211+ repodata_extend;
212+ repodata_extend_block;
213+ repodata_filelistfilter_matches;
214+ repodata_free;
215+ repodata_freedata;
216+ repodata_free_schemahash;
217+ repodata_globalize_id;
218+ repodata_initdata;
219+ repodata_internalize;
220+ repodata_key2id;
221+ repodata_localize_id;
222+ repodata_lookup_bin_checksum;
223+ repodata_lookup_id;
224+ repodata_lookup_idarray;
225+ repodata_lookup_num;
226+ repodata_lookup_str;
227+ repodata_lookup_type;
228+ repodata_lookup_void;
229+ repodata_merge_attrs;
230+ repodata_merge_some_attrs;
231+ repodata_new_handle;
232+ repodata_schema2id;
233+ repodata_search;
234+ repodata_set_binary;
235+ repodata_set_bin_checksum;
236+ repodata_set_checksum;
237+ repodata_set_constant;
238+ repodata_set_constantid;
239+ repodata_set_id;
240+ repodata_set_idarray;
241+ repodata_set_location;
242+ repodata_set_num;
243+ repodata_set_poolstr;
244+ repodata_setpos_kv;
245+ repodata_set_str;
246+ repodata_set_void;
247+ repodata_shrink;
248+ repodata_str2dir;
249+ repodata_stringify;
250+ repo_disable_paging;
251+ repo_empty;
252+ repo_fix_conflicts;
253+ repo_fix_supplements;
254+ repo_free;
255+ repo_freeallrepos;
256+ repo_free_solvable_block;
257+ repo_internalize;
258+ repo_last_repodata;
259+ repo_lookup_bin_checksum;
260+ repo_lookup_checksum;
261+ repo_lookup_id;
262+ repo_lookup_idarray;
263+ repo_lookup_num;
264+ repo_lookup_str;
265+ repo_lookup_type;
266+ repo_lookup_void;
267+ repo_matchvalue;
268+ repopagestore_compress_page;
269+ repopagestore_disable_paging;
270+ repopagestore_free;
271+ repopagestore_init;
272+ repopagestore_load_page_range;
273+ repopagestore_read_or_setup_pages;
274+ repo_reserve_ids;
275+ repo_search;
276+ repo_set_id;
277+ repo_set_num;
278+ repo_set_poolstr;
279+ repo_set_str;
280+ repo_sidedata_create;
281+ repo_sidedata_extend;
282+ sat_bin2hex;
283+ sat_calloc;
284+ sat_chksum_add;
285+ sat_chksum_create;
286+ sat_chksum_create_from_bin;
287+ sat_chksum_free;
288+ sat_chksum_get;
289+ sat_chksum_get_type;
290+ sat_chksum_isfinished;
291+ sat_chksum_str2type;
292+ sat_chksum_type2str;
293+ sat_dupappend;
294+ sat_dupjoin;
295+ sat_free;
296+ sat_hex2bin;
297+ sat_malloc;
298+ sat_malloc2;
299+ sat_MD5_Final;
300+ sat_MD5_Init;
301+ sat_MD5_Update;
302+ sat_oom;
303+ sat_realloc;
304+ sat_realloc2;
305+ sat_SHA1_Final;
306+ sat_SHA1_Init;
307+ sat_SHA1_Update;
308+ sat_SHA256_Data;
309+ sat_SHA256_End;
310+ sat_SHA256_Final;
311+ sat_SHA256_Init;
312+ sat_SHA256_Update;
313+ sat_SHA384_Data;
314+ sat_SHA384_End;
315+ sat_SHA384_Final;
316+ sat_SHA384_Init;
317+ sat_SHA384_Update;
318+ sat_SHA512_Data;
319+ sat_SHA512_End;
320+ sat_SHA512_Final;
321+ sat_SHA512_Init;
322+ sat_SHA512_Update;
323+ sat_sort;
324+ sat_timems;
325+ sat_version;
326+ sat_version_major;
327+ sat_version_minor;
328+ sat_version_patch;
329+ solvable2str;
330+ solvable_get_location;
331+ solvable_identical;
332+ solvable_lookup_bin_checksum;
333+ solvable_lookup_bool;
334+ solvable_lookup_checksum;
335+ solvable_lookup_id;
336+ solvable_lookup_idarray;
337+ solvable_lookup_num;
338+ solvable_lookup_str;
339+ solvable_lookup_str_lang;
340+ solvable_lookup_str_poollang;
341+ solvable_lookup_void;
342+ solvable_selfprovidedep;
343+ solvable_trivial_installable_map;
344+ solvable_trivial_installable_queue;
345+ solvable_trivial_installable_repo;
346+ solver_addchoicerules;
347+ solver_addduprules;
348+ solver_addinfarchrules;
349+ solver_addrpmrulesforsolvable;
350+ solver_addrpmrulesforupdaters;
351+ solver_addrpmrulesforweak;
352+ solver_addrule;
353+ solver_addupdaterule;
354+ solver_allruleinfos;
355+ solver_calc_duchanges;
356+ solver_calc_installsizechange;
357+ solver_calculate_noobsmap;
358+ solver_create;
359+ solver_create_decisions_obsoletesmap;
360+ solver_createdupmaps;
361+ solver_dep_installed;
362+ solver_disablechoicerules;
363+ solver_disablepolicyrules;
364+ solver_disableproblem;
365+ solver_enableproblem;
366+ solver_findallproblemrules;
367+ solver_findproblemrule;
368+ solver_free;
369+ solver_freedupmaps;
370+ solver_next_problem;
371+ solver_next_solution;
372+ solver_next_solutionelement;
373+ solver_prepare_solutions;
374+ solver_printallsolutions;
375+ solver_printcompleteprobleminfo;
376+ solver_printdecisionq;
377+ solver_printdecisions;
378+ solver_printproblem;
379+ solver_printprobleminfo;
380+ solver_printproblemruleinfo;
381+ solver_printrule;
382+ solver_printruleclass;
383+ solver_printruleelement;
384+ solver_printsolution;
385+ solver_printtransaction;
386+ solver_printtrivial;
387+ solver_printwatches;
388+ solver_problem_count;
389+ solver_problemruleinfo;
390+ solver_problemruleinfo2str;
391+ solver_reenablepolicyrules;
392+ solver_reset;
393+ solver_ruleinfo;
394+ solver_run_sat;
395+ solver_samerule;
396+ solver_select2str;
397+ solver_solution_count;
398+ solver_solutionelement2str;
399+ solver_solutionelement_count;
400+ solver_solve;
401+ solver_splitprovides;
402+ solver_take_solution;
403+ solver_take_solutionelement;
404+ solver_trivial_installable;
405+ solver_unifyrules;
406+ str2id;
407+ strn2id;
408+ stringpool_clone;
409+ stringpool_free;
410+ stringpool_freehash;
411+ stringpool_init;
412+ stringpool_init_empty;
413+ stringpool_shrink;
414+ stringpool_str2id;
415+ stringpool_strn2id;
416+ transaction_add_obsoleted;
417+ transaction_all_obs_pkgs;
418+ transaction_calc_duchanges;
419+ transaction_calc_installsizechange;
420+ transaction_calculate;
421+ transaction_check_order;
422+ transaction_classify;
423+ transaction_classify_pkgs;
424+ transaction_free;
425+ transaction_free_orderdata;
426+ transaction_init;
427+ transaction_init_clone;
428+ transaction_installedresult;
429+ transaction_obs_pkg;
430+ transaction_order;
431+ transaction_order_add_choices;
432+ transaction_type;
433+ vercmp;
434+ local:
435+ *;
436+};
437--
4381.7.4.4
439