[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fol] Re: Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed. を消すに は?


In article <3991194news.pl@xxxxxxxxxxxxxxxxxxxxxxxxx>
	kono@xxxxxxxxxxxxxxxxx (Shinji KONO) writes:
> $BIaDL$O!"(Bthread local $B$JNN0h$K(Berrno$B$KAjEv$9$k$b$N$r:n$k(B
> $B$H;W$&!#(B

$B$O$$!#IaDL!"(Berrno $B$O!"(BTSD (Thread Specific Data) $B$G$9!#(BLinux 
$B$G$b(B Solaris $B$G$b!#(BTSD $B$H$$$&$H!"(Bpthread_getspecific() $B$H(B
$B$9$k$N$,$=$&$J$s$@$1$I!"(Berrno $B$@$1$OFCJL07$$$N(B TSD $B$G$9!#(B

$B$?$H$($P!"$3$s$J%W%m%0%i%`$N>l9g!"(B
------------------------------------------------------------
% cat errno.c
#include <errno.h>
main()
{
    printf("%d\n",errno);
}
------------------------------------------------------------

Linux $B$@$H!"$3$s$J46$8!#(B
------------------------------------------------------------
% gcc -E errno.c | sed -e '/#/d' -e '/^[ 	]*$/d'
extern int *__errno_location (void) __attribute__ ((__const__));
main()
{
    printf("%d\n",(*__errno_location ()));
}
% 
------------------------------------------------------------
$B4X?t(B __errno_location() $B$,(B TSD $B$NHVCO$rJV$7$^$9!#(B
$B$-$C$H%f!<%6%l%Y%k$N%9%l%C%I9=B$BN$N$I$3$+$G$7$g$&!#(B

Solaris $B$@$H!"$3$s$J46$8!#(B
------------------------------------------------------------
% gcc -E errno.c | sed -e '/#/d' -e '/^[ 	]*$/d' 
extern int errno;
main()
{
    printf("%d\n",errno);
}
% gcc -D_REENTRANT -E errno.c | sed -e '/#/d' -e '/^[ 	]*$/d'
extern int *___errno();
main()
{
    printf("%d\n",(*(___errno())) );
}
% 
------------------------------------------------------------
Solaris $B$@$H!"(B-D_REENTRANT $B$rIU$1$l$P!"%^%k%A%9%l%C%IBP1~$K(B
$B$J$j$^$9$,!"IU$1$J$$$H@NIw$G$9!#(B

$B$D$$$G$K!"(BMacOSX$B!#(B
------------------------------------------------------------
% gcc -E errno.c | sed -e '/#/d' -e '/^[ 	]*$/d'
extern int * __error (void);
main()
{
    printf("%d\n",(*__error()));
}
% 
------------------------------------------------------------

> Subject: Re: Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed.       $B$r>C$9$K(B $B$O(B?

$B$3$N%a%C%;!<%8!"(B__errno() $B$,EG$$$F$$$k$s$G$9$+$M!#F0E*%j%s%/(B
$B$N%j%s%+$+$J$"!#(B

Linux $B$N(B Pthread $B$N<BAu$b!"$$$m$$$m$b$a$F$F!"7k6I!":#$I$&$J$C(B
$B$F$$$k$N$+NI$/J,$+$i$J$$$1$I!"(BPthread $B$N0[$J$k<BAu$r:.$<$?$H(B
$B$$$&$3$H$J$s$G$9$+$M!#(Bstdout $B$K%(%i!<EG$/$N$O$?$7$+$K$*$+$7$$!#(B

$B!@!@!!?7>k!!Lw!!!J$7$s$8$g$&!!$d$9$7!K!!!@!@(B
$B!@!@!!C^GHBg3X!!EE;R!&>pJs!!!!!!!!!!!!!!!@!@(B

$B$3$N>pJs$,$"$J$?$NC5$7$F$$?$b$N$+$I$&$+A*Br$7$F$/$@$5$!#(B
yes/$B$^$5$K$3$l$@!*(B   no/$B0c$&$J$!(B   part/$B0lIt8+$D$+$C$?(B   try/$B$3$l$G;n$7$F$_$k(B

$B$"$J$?$,C5$7$F$$?>pJs$O$I$N$h$&$J$3$H$+!"$4<+M3$K5-F~2<$5$!#FC$K!V$^$5$K$3$l$@!*!W$H8@$&>l9g$O5-F~$r$*4j$$7$^$9!#(B
$BNc(B:$B!VJ#?t$N%^%7%s$+$i(BCATV$B7PM3$G(Bipmasquerade$B$rMxMQ$7$F(BWeb$B$r;2>H$7$?$>l9g$N@_Dj$K$D$$F!W(B
Follow-Ups: References: