On Fri, Jan 8, 2010 at 8:12 PM, Iván Briano (Sachiel)
<[email protected]> wrote:
> On Fri, Jan 8, 2010 at 7:03 PM, Gustavo Sverzut Barbieri
> <[email protected]> wrote:
>> 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.
>>
>
> And/or 'static' where appropriate, may be less work in some cases.

Sure, I forgot to say that, but if the symbol is not used in other
files, then just add the "static" keyword before the symbol
definition.

If people can help with such QA, then also check all EAPI inside
modules. By default, modules should export only: e_modapi* (struct and
2-3 functions) as requested by E17. Everything else should be private
to the module (either static or no-EAPI!).   Of course there are
exceptions, for example modules that have dynamic modules themselves
(illume, everything)

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