Private symbols

View: New views
1 Messages — Rating Filter:   Alert me  

Private symbols

by Wesley W. Terpstra (Debian) :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I recently updated the packaging for libst 1.9 in debian and happened
to notice that there are a number of private symbols leaked into the
shared library. Attached is a patch that I've applied in the debian
package to fix this issue. Please consider applying it upstream.

Thank you.

PS. I am not subscribed so please CC me on any replies.

[01-private-symbols.patch]

diff -Nur -x '*.orig' -x '*~' st-1.9/common.h st-1.9.new/common.h
--- st-1.9/common.h 2009-11-01 02:36:41.000000000 +0100
+++ st-1.9.new/common.h 2009-11-01 02:37:14.000000000 +0100
@@ -252,9 +252,12 @@
  * Current vp, thread, and event system
  */
 
-extern _st_vp_t    _st_this_vp;
-extern _st_thread_t *_st_this_thread;
-extern _st_eventsys_t *_st_eventsys;
+ST_PRIVATE extern _st_vp_t    _st_this_vp;
+ST_PRIVATE extern _st_thread_t *_st_this_thread;
+ST_PRIVATE extern _st_eventsys_t *_st_eventsys;
+ST_PRIVATE extern int _st_active_count;
+ST_PRIVATE extern time_t _st_curr_time;
+ST_PRIVATE extern st_utime_t _st_last_tset;
 
 #define _ST_CURRENT_THREAD()            (_st_this_thread)
 #define _ST_SET_CURRENT_THREAD(_thread) (_st_this_thread = (_thread))
@@ -439,16 +442,15 @@
  * Forward declarations
  */
 
-void _st_vp_schedule(void);
-void _st_vp_check_clock(void);
-void *_st_idle_thread_start(void *arg);
-void _st_thread_main(void);
-void _st_thread_cleanup(_st_thread_t *thread);
-void _st_add_sleep_q(_st_thread_t *thread, st_utime_t timeout);
-void _st_del_sleep_q(_st_thread_t *thread);
-_st_stack_t *_st_stack_new(int stack_size);
-void _st_stack_free(_st_stack_t *ts);
-int _st_io_init(void);
+ST_PRIVATE void _st_vp_schedule(void);
+ST_PRIVATE void _st_vp_check_clock(void);
+ST_PRIVATE void *_st_idle_thread_start(void *arg);
+ST_PRIVATE void _st_thread_cleanup(_st_thread_t *thread);
+ST_PRIVATE void _st_add_sleep_q(_st_thread_t *thread, st_utime_t timeout);
+ST_PRIVATE void _st_del_sleep_q(_st_thread_t *thread);
+ST_PRIVATE _st_stack_t *_st_stack_new(int stack_size);
+ST_PRIVATE void _st_stack_free(_st_stack_t *ts);
+ST_PRIVATE int _st_io_init(void);
 
 st_utime_t st_utime(void);
 _st_cond_t *st_cond_new(void);
diff -Nur -x '*.orig' -x '*~' st-1.9/md.h st-1.9.new/md.h
--- st-1.9/md.h 2009-11-01 02:37:12.000000000 +0100
+++ st-1.9.new/md.h 2009-11-01 02:37:14.000000000 +0100
@@ -54,6 +54,12 @@
 #define MAP_FAILED -1
 #endif
 
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#define ST_PRIVATE __attribute__((visibility("hidden")))
+#else
+#define ST_PRIVATE
+#endif
+
 /*****************************************
  * Platform specifics
  */
@@ -460,8 +466,8 @@
 #define MD_SETJMP(env) _st_md_cxt_save(env)
 #define MD_LONGJMP(env, val) _st_md_cxt_restore(env, val)
 
-extern int _st_md_cxt_save(jmp_buf env);
-extern void _st_md_cxt_restore(jmp_buf env, int val);
+ST_PRIVATE extern int _st_md_cxt_save(jmp_buf env);
+ST_PRIVATE extern void _st_md_cxt_restore(jmp_buf env, int val);
 #else
 #define MD_SETJMP(env) setjmp(env)
 #define MD_LONGJMP(env, val) longjmp(env, val)
diff -Nur -x '*.orig' -x '*~' st-1.9/md.S st-1.9.new/md.S
--- st-1.9/md.S 2009-11-01 02:36:41.000000000 +0100
+++ st-1.9.new/md.S 2009-11-01 02:37:14.000000000 +0100
@@ -302,6 +302,7 @@
 
         /* _st_md_cxt_save(__jmp_buf env) */
 .globl _st_md_cxt_save
+.hidden _st_md_cxt_save
         .type _st_md_cxt_save, @function
         .align 16
 _st_md_cxt_save:
@@ -330,6 +331,7 @@
 
         /* _st_md_cxt_restore(__jmp_buf env, int val) */
 .globl _st_md_cxt_restore
+.hidden _st_md_cxt_restore
         .type _st_md_cxt_restore, @function
         .align 16
 _st_md_cxt_restore:
@@ -375,6 +377,7 @@
 
         /* _st_md_cxt_save(__jmp_buf env) */
 .globl _st_md_cxt_save
+.hidden _st_md_cxt_save
         .type _st_md_cxt_save, @function
         .align 16
 _st_md_cxt_save:
@@ -402,6 +405,7 @@
 
         /* _st_md_cxt_restore(__jmp_buf env, int val) */
 .globl _st_md_cxt_restore
+.hidden _st_md_cxt_restore
         .type _st_md_cxt_restore, @function
         .align 16
 _st_md_cxt_restore:
diff -Nur -x '*.orig' -x '*~' st-1.9/sched.c st-1.9.new/sched.c
--- st-1.9/sched.c 2009-10-02 02:22:17.000000000 +0200
+++ st-1.9.new/sched.c 2009-11-01 02:37:35.000000000 +0100
@@ -312,7 +312,7 @@
 }
 
 
-void _st_thread_main(void)
+ST_HIDDEN void _st_thread_main(void)
 {
   _st_thread_t *thread = _ST_CURRENT_THREAD();
 
diff -Nur -x '*.orig' -x '*~' st-1.9/stk.c st-1.9.new/stk.c
--- st-1.9/stk.c 2009-11-01 02:36:41.000000000 +0100
+++ st-1.9.new/stk.c 2009-11-01 02:37:14.000000000 +0100
@@ -50,9 +50,9 @@
 /* How much space to leave between the stacks, at each end */
 #define REDZONE _ST_PAGE_SIZE
 
-_st_clist_t _st_free_stacks = ST_INIT_STATIC_CLIST(&_st_free_stacks);
-int _st_num_free_stacks = 0;
-int _st_randomize_stacks = 0;
+ST_HIDDEN _st_clist_t _st_free_stacks = ST_INIT_STATIC_CLIST(&_st_free_stacks);
+ST_HIDDEN int _st_num_free_stacks = 0;
+ST_HIDDEN int _st_randomize_stacks = 0;
 
 static char *_st_new_stk_segment(int size);
 
diff -Nur -x '*.orig' -x '*~' st-1.9/sync.c st-1.9.new/sync.c
--- st-1.9/sync.c 2009-11-01 02:36:41.000000000 +0100
+++ st-1.9.new/sync.c 2009-11-01 02:37:14.000000000 +0100
@@ -44,14 +44,8 @@
 #include <errno.h>
 #include "common.h"
 
-
-extern time_t _st_curr_time;
-extern st_utime_t _st_last_tset;
-extern int _st_active_count;
-
 static st_utime_t (*_st_utime)(void) = NULL;
 
-
 /*****************************************
  * Time functions
  */


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
State-threads-devel mailing list
State-threads-devel@...
https://lists.sourceforge.net/lists/listinfo/state-threads-devel