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
