On 07/08/2011 04:44 PM, Gilles Chanteperdrix wrote:
On 07/08/2011 04:06 PM, Anders Blomdell wrote:
On 07/08/2011 02:41 PM, Gilles Chanteperdrix wrote:
On 07/07/2011 11:47 PM, Anders Blomdell wrote:
When compiling kernel 2.6.37.3 and xenomai 2.5.6 with "gcc version 4.6.0
20110530 (Red Hat 4.6.0-9) (GCC)", programs fail with -ENOSYS in
rt_task_shadow. If compiled with "gcc version 4.5.1 20100924 (Red Hat
4.5.1-4) (GCC)" everything works as expected.

Could you send us the disassembly of the two functions?
Which functions? Print[fk] debugging got me to suspect the
syscall/skin_mux interface, but I'm a bit at loss of exactly where the
code ends up.

The two rt_task_shadow, the one which works, and the one which does not.
Ok, attached the two routines taken from respective libnative.so.3

Will try to recompile with gcc-4.6.1 as well.

/Anders

--
Anders Blomdell                  Email: anders.blomd...@control.lth.se
Department of Automatic Control
Lund University                  Phone:    +46 46 222 4625
P.O. Box 118                     Fax:      +46 46 138118
SE-221 00 Lund, Sweden

000083a0 <rt_task_shadow>:
    83a0:       55                      push   %ebp
    83a1:       57                      push   %edi
    83a2:       56                      push   %esi
    83a3:       53                      push   %ebx
    83a4:       e8 c0 a1 ff ff          call   2569 <__i686.get_pc_thunk.bx>
    83a9:       81 c3 93 56 00 00       add    $0x5693,%ebx
    83af:       81 ec ac 08 00 00       sub    $0x8ac,%esp
    83b5:       8b b4 24 c0 08 00 00    mov    0x8c0(%esp),%esi
    83bc:       e8 3b 9d ff ff          call   20fc <xeno_fault_stack@plt>
    83c1:       85 f6                   test   %esi,%esi
    83c3:       8d 84 24 90 08 00 00    lea    0x890(%esp),%eax
    83ca:       c7 44 24 04 00 00 00    movl   $0x0,0x4(%esp)
    83d1:       00 
    83d2:       0f 44 f0                cmove  %eax,%esi
    83d5:       c7 04 24 01 00 00 00    movl   $0x1,(%esp)
    83dc:       e8 fb 9e ff ff          call   22dc <pthread_setcanceltype@plt>
    83e1:       e8 c6 9e ff ff          call   22ac 
<xeno_sigshadow_install_once@plt>
    83e6:       8b 84 24 c4 08 00 00    mov    0x8c4(%esp),%eax
    83ed:       89 b4 24 78 08 00 00    mov    %esi,0x878(%esp)
    83f4:       89 84 24 7c 08 00 00    mov    %eax,0x87c(%esp)
    83fb:       8b 84 24 c8 08 00 00    mov    0x8c8(%esp),%eax
    8402:       89 84 24 80 08 00 00    mov    %eax,0x880(%esp)
    8409:       8b 84 24 cc 08 00 00    mov    0x8cc(%esp),%eax
    8410:       89 84 24 84 08 00 00    mov    %eax,0x884(%esp)
    8417:       e8 a0 9e ff ff          call   22bc <pthread_self@plt>
    841c:       89 84 24 88 08 00 00    mov    %eax,0x888(%esp)
    8423:       e8 34 9d ff ff          call   215c <xeno_init_current_mode@plt>
    8428:       b9 f4 ff ff ff          mov    $0xfffffff4,%ecx
    842d:       85 c0                   test   %eax,%eax
    842f:       89 84 24 8c 08 00 00    mov    %eax,0x88c(%esp)
    8436:       0f 84 bd 00 00 00       je     84f9 <rt_task_shadow+0x159>
    843c:       8d 83 00 aa ff ff       lea    -0x5600(%ebx),%eax
    8442:       89 84 24 74 08 00 00    mov    %eax,0x874(%esp)
    8449:       89 ac 24 70 08 00 00    mov    %ebp,0x870(%esp)
    8450:       8b bb e8 ff ff ff       mov    -0x18(%ebx),%edi
    8456:       8d 84 24 70 08 00 00    lea    0x870(%esp),%eax
    845d:       89 84 24 98 08 00 00    mov    %eax,0x898(%esp)
    8464:       8d ac 24 78 08 00 00    lea    0x878(%esp),%ebp
    846b:       90                      nop
    846c:       8d 74 26 00             lea    0x0(%esi,%eiz,1),%esi
    8470:       8b 07                   mov    (%edi),%eax
    8472:       31 c9                   xor    %ecx,%ecx
    8474:       c7 44 24 28 00 00 00    movl   $0x0,0x28(%esp)
    847b:       00 
    847c:       0d 2b 02 00 00          or     $0x22b,%eax
    8481:       89 84 24 9c 08 00 00    mov    %eax,0x89c(%esp)
    8488:       89 e8                   mov    %ebp,%eax
    848a:       53                      push   %ebx
    848b:       89 c3                   mov    %eax,%ebx
    848d:       8b 84 24 9c 08 00 00    mov    0x89c(%esp),%eax
    8494:       55                      push   %ebp
    8495:       8b ac 24 98 08 00 00    mov    0x898(%esp),%ebp
    849c:       cd 80                   int    $0x80
    849e:       5d                      pop    %ebp
    849f:       5b                      pop    %ebx
    84a0:       89 c1                   mov    %eax,%ecx
    84a2:       8b 44 24 28             mov    0x28(%esp),%eax
    84a6:       85 c0                   test   %eax,%eax
    84a8:       74 1a                   je     84c4 <rt_task_shadow+0x124>
    84aa:       8d 44 24 28             lea    0x28(%esp),%eax
    84ae:       89 4c 24 08             mov    %ecx,0x8(%esp)
    84b2:       c7 44 24 04 ab ff ff    movl   $0xffffffab,0x4(%esp)
    84b9:       ff 
    84ba:       89 04 24                mov    %eax,(%esp)
    84bd:       e8 aa 9d ff ff          call   226c <__xnsig_dispatch@plt>
    84c2:       89 c1                   mov    %eax,%ecx
    84c4:       83 f9 ab                cmp    $0xffffffab,%ecx
    84c7:       74 a7                   je     8470 <rt_task_shadow+0xd0>
    84c9:       8d 83 b9 ca ff ff       lea    -0x3547(%ebx),%eax
    84cf:       89 44 24 04             mov    %eax,0x4(%esp)
    84d3:       8d 83 5c c5 ff ff       lea    -0x3aa4(%ebx),%eax
    84d9:       89 4c 24 0c             mov    %ecx,0xc(%esp)
    84dd:       c7 44 24 08 df 00 00    movl   $0xdf,0x8(%esp)
    84e4:       00 
    84e5:       89 04 24                mov    %eax,(%esp)
    84e8:       89 4c 24 1c             mov    %ecx,0x1c(%esp)
    84ec:       e8 ab 9c ff ff          call   219c <printf@plt>
    84f1:       8b 4c 24 1c             mov    0x1c(%esp),%ecx
    84f5:       85 c9                   test   %ecx,%ecx
    84f7:       74 0f                   je     8508 <rt_task_shadow+0x168>
    84f9:       81 c4 ac 08 00 00       add    $0x8ac,%esp
    84ff:       89 c8                   mov    %ecx,%eax
    8501:       5b                      pop    %ebx
    8502:       5e                      pop    %esi
    8503:       5f                      pop    %edi
    8504:       5d                      pop    %ebp
    8505:       c3                      ret    
    8506:       66 90                   xchg   %ax,%ax
    8508:       8b 7e 04                mov    0x4(%esi),%edi
    850b:       8b 83 f4 ff ff ff       mov    -0xc(%ebx),%eax
    8511:       8b 36                   mov    (%esi),%esi
    8513:       65 89 78 04             mov    %edi,%gs:0x4(%eax)
    8517:       65 89 30                mov    %esi,%gs:(%eax)
    851a:       e8 bd 9c ff ff          call   21dc <xeno_set_current@plt>
    851f:       8b 4c 24 1c             mov    0x1c(%esp),%ecx
    8523:       81 c4 ac 08 00 00       add    $0x8ac,%esp
    8529:       5b                      pop    %ebx
    852a:       5e                      pop    %esi
    852b:       5f                      pop    %edi
    852c:       89 c8                   mov    %ecx,%eax
    852e:       5d                      pop    %ebp
    852f:       c3                      ret    

00006ec0 <rt_task_shadow>:
    6ec0:       55                      push   %ebp
    6ec1:       89 e5                   mov    %esp,%ebp
    6ec3:       57                      push   %edi
    6ec4:       56                      push   %esi
    6ec5:       53                      push   %ebx
    6ec6:       e8 9e b4 ff ff          call   2369 <__i686.get_pc_thunk.bx>
    6ecb:       81 c3 75 28 00 00       add    $0x2875,%ebx
    6ed1:       81 ec ac 08 00 00       sub    $0x8ac,%esp
    6ed7:       8b 75 08                mov    0x8(%ebp),%esi
    6eda:       e8 e1 b1 ff ff          call   20c0 <xeno_fault_stack@plt>
    6edf:       85 f6                   test   %esi,%esi
    6ee1:       8d 45 d8                lea    -0x28(%ebp),%eax
    6ee4:       0f 44 f0                cmove  %eax,%esi
    6ee7:       c7 44 24 04 00 00 00    movl   $0x0,0x4(%esp)
    6eee:       00 
    6eef:       c7 04 24 01 00 00 00    movl   $0x1,(%esp)
    6ef6:       e8 95 b3 ff ff          call   2290 <pthread_setcanceltype@plt>
    6efb:       e8 60 b3 ff ff          call   2260 
<xeno_sigshadow_install_once@plt>
    6f00:       8b 45 0c                mov    0xc(%ebp),%eax
    6f03:       89 75 c0                mov    %esi,-0x40(%ebp)
    6f06:       89 45 c4                mov    %eax,-0x3c(%ebp)
    6f09:       8b 45 10                mov    0x10(%ebp),%eax
    6f0c:       89 45 c8                mov    %eax,-0x38(%ebp)
    6f0f:       8b 45 14                mov    0x14(%ebp),%eax
    6f12:       89 45 cc                mov    %eax,-0x34(%ebp)
    6f15:       e8 56 b3 ff ff          call   2270 <pthread_self@plt>
    6f1a:       89 45 d0                mov    %eax,-0x30(%ebp)
    6f1d:       e8 fe b1 ff ff          call   2120 <xeno_init_current_mode@plt>
    6f22:       89 c2                   mov    %eax,%edx
    6f24:       85 d2                   test   %edx,%edx
    6f26:       89 45 d4                mov    %eax,-0x2c(%ebp)
    6f29:       b8 f4 ff ff ff          mov    $0xfffffff4,%eax
    6f2e:       0f 84 89 00 00 00       je     6fbd <rt_task_shadow+0xfd>
    6f34:       8d 83 f4 d7 ff ff       lea    -0x280c(%ebx),%eax
    6f3a:       89 45 bc                mov    %eax,-0x44(%ebp)
    6f3d:       89 6d b8                mov    %ebp,-0x48(%ebp)
    6f40:       8b bb e8 ff ff ff       mov    -0x18(%ebx),%edi
    6f46:       8d 45 b8                lea    -0x48(%ebp),%eax
    6f49:       89 45 e4                mov    %eax,-0x1c(%ebp)
    6f4c:       8d 85 70 f7 ff ff       lea    -0x890(%ebp),%eax
    6f52:       8d 55 c0                lea    -0x40(%ebp),%edx
    6f55:       89 85 64 f7 ff ff       mov    %eax,-0x89c(%ebp)
    6f5b:       90                      nop
    6f5c:       8d 74 26 00             lea    0x0(%esi,%eiz,1),%esi
    6f60:       8b 07                   mov    (%edi),%eax
    6f62:       31 c9                   xor    %ecx,%ecx
    6f64:       c7 85 70 f7 ff ff 00    movl   $0x0,-0x890(%ebp)
    6f6b:       00 00 00 
    6f6e:       0d 2b 02 00 00          or     $0x22b,%eax
    6f73:       89 45 e0                mov    %eax,-0x20(%ebp)
    6f76:       87 d3                   xchg   %edx,%ebx
    6f78:       8b 45 e0                mov    -0x20(%ebp),%eax
    6f7b:       55                      push   %ebp
    6f7c:       8b 6d e4                mov    -0x1c(%ebp),%ebp
    6f7f:       cd 80                   int    $0x80
    6f81:       5d                      pop    %ebp
    6f82:       87 d3                   xchg   %edx,%ebx
    6f84:       8b 8d 70 f7 ff ff       mov    -0x890(%ebp),%ecx
    6f8a:       85 c9                   test   %ecx,%ecx
    6f8c:       74 26                   je     6fb4 <rt_task_shadow+0xf4>
    6f8e:       89 44 24 08             mov    %eax,0x8(%esp)
    6f92:       8b 85 64 f7 ff ff       mov    -0x89c(%ebp),%eax
    6f98:       89 95 60 f7 ff ff       mov    %edx,-0x8a0(%ebp)
    6f9e:       c7 44 24 04 ab ff ff    movl   $0xffffffab,0x4(%esp)
    6fa5:       ff 
    6fa6:       89 04 24                mov    %eax,(%esp)
    6fa9:       e8 72 b2 ff ff          call   2220 <__xnsig_dispatch@plt>
    6fae:       8b 95 60 f7 ff ff       mov    -0x8a0(%ebp),%edx
    6fb4:       83 f8 ab                cmp    $0xffffffab,%eax
    6fb7:       74 a7                   je     6f60 <rt_task_shadow+0xa0>
    6fb9:       85 c0                   test   %eax,%eax
    6fbb:       74 0b                   je     6fc8 <rt_task_shadow+0x108>
    6fbd:       81 c4 ac 08 00 00       add    $0x8ac,%esp
    6fc3:       5b                      pop    %ebx
    6fc4:       5e                      pop    %esi
    6fc5:       5f                      pop    %edi
    6fc6:       5d                      pop    %ebp
    6fc7:       c3                      ret    
    6fc8:       8b 7e 04                mov    0x4(%esi),%edi
    6fcb:       8b 93 f4 ff ff ff       mov    -0xc(%ebx),%edx
    6fd1:       8b 36                   mov    (%esi),%esi
    6fd3:       65 89 7a 04             mov    %edi,%gs:0x4(%edx)
    6fd7:       65 89 32                mov    %esi,%gs:(%edx)
    6fda:       89 85 60 f7 ff ff       mov    %eax,-0x8a0(%ebp)
    6fe0:       e8 ab b1 ff ff          call   2190 <xeno_set_current@plt>
    6fe5:       8b 85 60 f7 ff ff       mov    -0x8a0(%ebp),%eax
    6feb:       81 c4 ac 08 00 00       add    $0x8ac,%esp
    6ff1:       5b                      pop    %ebx
    6ff2:       5e                      pop    %esi
    6ff3:       5f                      pop    %edi
    6ff4:       5d                      pop    %ebp
    6ff5:       c3                      ret    
    6ff6:       8d 76 00                lea    0x0(%esi),%esi
    6ff9:       8d bc 27 00 00 00 00    lea    0x0(%edi,%eiz,1),%edi

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to