]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/patches/libsatsolver-Create-linker-scripts-that-do-only-export-the-needed.patch
core52: stop/start apache at update.
[people/teissler/ipfire-2.x.git] / src / patches / libsatsolver-Create-linker-scripts-that-do-only-export-the-needed.patch
1 >From a42d7e17fa3e39a8306126c19f1b3b54f1fdd79e Mon Sep 17 00:00:00 2001
2 From: Michael Tremer <michael.tremer@ipfire.org>
3 Date: Thu, 21 Apr 2011 16:40:11 +0200
4 Subject: [PATCH] Create linker-scripts that do only export the needed symbols
5 of libsatsolver{,ext}.
6
7 See 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
11 Signed-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
21 diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt
22 index 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})
33 diff --git a/ext/libsatsolverext.ver b/ext/libsatsolverext.ver
34 new file mode 100644
35 index 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 +};
64 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
65 index 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})
76 diff --git a/src/libsatsolver.ver b/src/libsatsolver.ver
77 new file mode 100644
78 index 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 --
438 1.7.4.4
439