Dnia wto 13. stycznia 2004 16:56, Jakub Bogusz napisał: > Okazały się prawdziwe. > > Fragment zmian w obliczaniu adresów wyglądał tak: > | beq a1, 0f > | - ldl t0, 8(a1) # sa_flags > | - lda a4, sigreturn-__syscall_rt_sigaction(pv) > | - lda t1, rt_sigreturn-__syscall_rt_sigaction(pv) > | - and t0, 0x00000040, t0 # SA_SIGINFO > | + ldl t0, 8(a1) # sa_flags > | + ldah a4, sigreturn(gp) !gprelhigh > | + ldah t1, rt_sigreturn(gp) !gprelhigh > | + lda a4, sigreturn(a4) !gprellow > | + lda t1, rt_sigreturn(a4) !gprellow > > ^^ ^^ > > | + and t0, 0x00000040, t0 # SA_SIGINFO > | cmovne t0, t1, a4 > > Za dużo kopiowania no i dla sygnałów rt był SEGV przy powrocie. Poszło do ludzi od glibc?
-- Arkadiusz Miśkiewicz CS at FoE, Wroclaw University of Technology arekm.pld-linux.org AM2-6BONE, 1024/3DB19BBD, arekm(at)ircnet, PLD/Linux __________________________________________________________ nie pytaj co inni zrobili dla pld, pomysl ile sam zrobiles
