|
|
Message-ID: <20130226202112.GH6181@port70.net>
Date: Tue, 26 Feb 2013 21:21:12 +0100
From: Szabolcs Nagy <nsz@...t70.net>
To: musl@...ts.openwall.com
Subject: Re: Fix for fields in utmp
see inline comments
* Ivan Kanakarakis <ivan.kanak@...il.com> [2013-02-26 12:34:43 +0200]:
> Linux suicidemachine 3.7.5-1-ARCH #1 SMP PREEMPT Mon Jan 28 10:03:32
> CET 2013 x86_64 GNU/Linux
> ----------------------------------
> --- data/glibc.sizeof 2013-02-26 12:27:48.112569344 +0200
> +++ data/musl.sizeof 2013-02-26 12:27:48.119236080 +0200
> @@ -90,3 +90,3 @@
> float 4
> -float_t 4
> +float_t 8
looks like musl does not respect FLT_EVAL_METHOD on x86_64
this should be fixed
> fpos_t 16
> @@ -112,4 +112,4 @@
> int8_t 1
> -int_fast16_t 8
> -int_fast32_t 8
> +int_fast16_t 4
> +int_fast32_t 4
> int_fast64_t 8
these diffs may cause problems
> @@ -122,3 +122,3 @@
> intptr_t 8
> -jmp_buf 200
> +jmp_buf 64
> key_t 4
> @@ -181,6 +181,6 @@
> quad_t 8
> -regex_t 64
> +regex_t 56
> register_t 8
> -regmatch_t 8
> -regoff_t 4
> +regmatch_t 16
> +regoff_t 8
> res_state 8
> @@ -196,3 +196,3 @@
> sighandler_t 8
> -siginfo_t 128
> +siginfo_t 136
> sigjmp_buf 200
> @@ -215,3 +215,3 @@
> struct ar_hdr 60
> -struct arpd_request 40
> +struct arpd_request 28
> struct arphdr 8
> @@ -222,3 +222,3 @@
> struct cmsghdr 16
> -struct crypt_data 131232
> +struct crypt_data 260
> struct dirent 280
> @@ -282,3 +282,3 @@
> struct itimerval 32
> -struct lastlog 292
> +struct lastlog 296
> struct lconv 96
> @@ -312,3 +312,3 @@
> struct ns_tsig_key 2072
> -struct ntptimeval 72
> +struct ntptimeval 32
> struct option 32
> @@ -326,4 +326,4 @@
> struct rtentry 120
> -struct rusage 144
> -struct sched_param 4
> +struct rusage 272
> +struct sched_param 48
> struct sembuf 6
> @@ -348,3 +348,3 @@
> struct sockaddr_ll 20
> -struct sockaddr_storage 128
> +struct sockaddr_storage 136
> struct sockaddr_un 110
> @@ -361,3 +361,3 @@
> struct strrecvfd 20
> -struct sysinfo 112
> +struct sysinfo 368
> struct termios 60
> @@ -376,3 +376,3 @@
> struct utimbuf 16
> -struct utmpx 384
> +struct utmpx 400
so we need the glibc hacks to be abi compatible:
struct utmpx
{
short ut_type;
pid_t ut_pid;
char ut_line[UT_LINESIZE];
char ut_id[4];
char ut_user[32];
char ut_host[256];
struct {
short e_termination;
short e_exit;
} ut_exit;
#if 64 bit abi
__int32_t ut_session;
struct {__int32_t tv_sec; __int32_t tv_usec;} ut_tv;
#else
long ut_session;
struct timeval ut_tv;
#endif
unsigned ut_addr_v6[4];
char __unused[20];
};
the comment in glibc sysdeps/gnu/bits/utmpx.h is
/* The fields ut_session and ut_tv must be the same size when compiled
32- and 64-bit. This allows files and shared memory to be shared
between 32- and 64-bit applications. */
> struct utsname 390
> @@ -399,4 +399,4 @@
> uint8_t 1
> -uint_fast16_t 8
> -uint_fast32_t 8
> +uint_fast16_t 4
> +uint_fast32_t 4
> uint_fast64_t 8
> @@ -416,4 +416,4 @@
> wchar_t 4
> -wctrans_t 8
> -wctype_t 8
> +wctrans_t 4
> +wctype_t 4
> wint_t 4
>
it seems wctype_t is unconditionally long in glibc
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.