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. > 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 > ------------------------------------------------------------------------------ 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
