Hi all,

Today I used enlightenment without -fvisibility=hidden and noticed a
complain of mixer/connman users: they clash. Investigating the cause,
I found that _Name were not defined static in both, so they clashed. I
fixed my modules, but then I ran a quick script over modules and got
the following list (please investigate further). I'm about to travel
so I can't fix them now, please help:

note: I hand edited and cut some obvious cases, but the command was:

for m in *; do echo "$m:"; readelf -s
/usr/lib/enlightenment/modules/$m/linux-gnu-i686-ver-pre-svn-05/module.so
 | grep 'GLOBAL DEFAULT' | grep -v 'UND ' | grep -v
"\(_fini\|_init\|__bss_start\|_end\|_edata\|e_modapi\|evry\|e_kbd_\|il_\|e_int_\|e_fwin\|_\?e_$m\|_\?$m\)"
| sed "s/.* \([a-zA-Z0-9_]\+\)/   \1/g"; done

conf_colors:
   _wid_hash
   _wm_hash
   color_classes
   _mod_hash
conf_exebuf:
   scroll_list
conf_fonts:
   text_class_predefined_nam
conf_intl:
   charset_predefined_pairs
   language_predefined_pairs
   basic_language_predefined
   region_predefined_pairs
conf_mime:
   types
conf_profiles
   _dia_new_profile
conf_window_display
   shading_list
conf_window_manipulation
   autoraise_list
   resistance_list
conf_winlist
   scroll_animation_list
   iconified_list
everything
   selectors
   action_selector
fileman
   _e_mod_menu_generate
gadman
   current
   Man
ibox
   show_label_list
illume
   slipshelf
   gadits
   delay_label
   _e_mod_gad_gsm_shutdown
   delay_slider
   local_slipshelf
   external_keyboard
illume2
   policy_name
   o_top
   _sw_change_timer
   _ps_change_timer
   stype
   _windows_change_timer
   o_left
   _anim_change_timer
   _policy_change_timer
illume-home
   delay_slider
   delay_label
illume-keyboard
   external
illume-softkey
   e_mod_sk_win_shutdown
   e_mod_sk_win_new
msgbus_lang
   cb_langs
notification
   _gc_orient
   uuid
   _gc_class
pager
   popup_list

Lots of them were introduced with last illume modules (/me look at
devilhorns ;-))

How to solve? Simple, go to that module and PREFIX the variable with
_e_${MODNAME}_ or _${MODNAME}_ to make clear they will not clash with
another module.

Something else is to not use RTLD_GLOBAL but RTLD_LOCAL for modules,
providing some other way to register module things for other parts
(need to think and clarify about this, but it's lots of work I guess).

BR,

-- 
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN: [email protected]
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to