int bar () { return 3; } #pragma weak hide_original_foo int hide_original_foo () { return 1 + bar (); } #pragma weak hide_old_foo int hide_old_foo () { return 10 + bar(); } #pragma weak hide_old_foo1 int hide_old_foo1 () { return 100 + bar (); } #pragma weak hide_new_foo int hide_new_foo () { return 1000 + bar (); } __asm__(".symver hide_original_foo,show_foo@"); __asm__(".symver hide_old_foo,show_foo@VERS_1.1"); __asm__(".symver hide_old_foo1,show_foo@VERS_1.2"); __asm__(".symver hide_new_foo,show_foo@@VERS_2.0");