From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/9] skalibs: new package
Date: Sun, 4 Dec 2016 19:08:45 +0100 [thread overview]
Message-ID: <20161204180845.GA19204@itchy> (raw)
In-Reply-To: <20160809221532.3f36d369@itchy>
On 16-08-09 22:15:32, Eric Le Bihan wrote:
> Hi!
>
> Le Tue, 9 Aug 2016 10:06:22 +0200,
> Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit :
>
> > On Mon, 8 Aug 2016 23:02:12 +0200, Eric Le Bihan wrote:
[...]
> > > + trytypesize() {
> > > + echo "Checking size of $3..."
> > > +- $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO $LDFLAGS_AUTO -o
> > > trysizeof$1 src/sysdeps/trysizeof$1.c +-
> > > type_size=$(./trysizeof$1) || fail "$0: unable to determine size of
> > > $3" ++ r=false ++ type_size=0
> > > ++ while true; do
> > > ++ cat<<EOF>trysizeof$1.c
> > > ++#include <sys/types.h>
> > > ++
> > > ++int main(void)
> > > ++{
> > > ++ static int v = 1 / !!((sizeof($3) == $type_size));
> > > ++ return 0;
> > > ++}
> > > ++EOF
> > > ++ if $CC_AUTO $CPPFLAGS_AUTO $CFLAGS_AUTO $LDFLAGS_AUTO -o
> > > trysizeof$1 trysizeof$1.c 2>/dev/null; then ++ r=true
> > > ++ break
> > > ++ fi
> > > ++ type_size=$(expr $type_size + 1)
> > > ++ test $type_size -le 16 || break
> > > ++ done
> > > ++ test $r = true || fail "$0: unable to determine size of $3"
> > > + type_bits=$(expr 8 \* $type_size)
> > > +- rm -f trysizeof$1
> > > ++ rm -f trysizeof$1 trysizeof$1.c
> > > + echo "sizeof$1: $type_size" >> $sysdeps/sysdeps
> > > + echo "#define ${package_macro_name}_SIZEOF$2 $type_size" >>
> > > $sysdeps/sysdeps.h
> > > + echo "#define ${package_macro_name}_$2_BITS $type_bits" >>
> > > $sysdeps/sysdeps.h
> >
> > Instead of doing this loop to find the size of the different types,
> > what about using the following compiler pre-built defines (like you're
> > doing for little endian vs. big endian detection below) :
> >
> > $ sparc-linux-gcc -dM -E - </dev/null | grep SIZEOF
> > #define __SIZEOF_INT__ 4
> > #define __SIZEOF_POINTER__ 4
> > #define __SIZEOF_LONG__ 4
> > #define __SIZEOF_LONG_DOUBLE__ 16
> > #define __SIZEOF_SIZE_T__ 4
> > #define __SIZEOF_WINT_T__ 4
> > #define __SIZEOF_PTRDIFF_T__ 4
> > #define __SIZEOF_FLOAT__ 4
> > #define __SIZEOF_SHORT__ 2
> > #define __SIZEOF_WCHAR_T__ 4
> > #define __SIZEOF_DOUBLE__ 8
> > #define __SIZEOF_LONG_LONG__ 8
>
> I did not know about this. Thanks for the suggestion. I'll rework the
> patch.
I've done some tests: the preprocessor solution is OK for C types like
'unsigned short' and co, but it does not work for some system types like
gid_t and time_t. So I'll keep the loop based solution in my upcoming
respin of this series.
Best regards,
--
ELB
next prev parent reply other threads:[~2016-12-04 18:08 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-08 21:02 [Buildroot] [PATCH 0/9] Introducing service supervision/management with s6 Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 1/9] skalibs: new package Eric Le Bihan
2016-08-09 8:06 ` Thomas Petazzoni
2016-08-09 20:16 ` Eric Le Bihan
2016-08-09 20:35 ` Thomas Petazzoni
[not found] ` <20160809221532.3f36d369@itchy>
2016-12-04 18:08 ` Eric Le Bihan [this message]
2016-08-08 21:02 ` [Buildroot] [PATCH 2/9] execline: " Eric Le Bihan
2016-08-09 8:09 ` Thomas Petazzoni
2016-08-09 20:22 ` Eric Le Bihan
2016-08-09 20:36 ` Thomas Petazzoni
2016-08-08 21:02 ` [Buildroot] [PATCH 3/9] s6: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 4/9] s6-dns: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 5/9] s6-networking: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 6/9] s6-rc: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 7/9] s6-portable-utils: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 8/9] s6-linux-utils: " Eric Le Bihan
2016-08-08 21:02 ` [Buildroot] [PATCH 9/9] s6-linux-init: " Eric Le Bihan
2016-08-09 4:14 ` [Buildroot] [PATCH 0/9] Introducing service supervision/management with s6 Waldemar Brodkorb
2016-08-09 19:54 ` Eric Le Bihan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161204180845.GA19204@itchy \
--to=eric.le.bihan.dev@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.