From: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
To: Andrei Errapart
<andrei-VvktuG2w+SIZux3j3Bed6fC9HSW9iNxf@public.gmane.org>
Cc: devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] Microsoft Visual C patches
Date: Mon, 16 Jun 2014 20:46:28 +1000 [thread overview]
Message-ID: <20140616104628.GB29264@voom.redhat.com> (raw)
In-Reply-To: <539DBFC8.4050204-VvktuG2w+SIZux3j3Bed6fC9HSW9iNxf@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 4537 bytes --]
On Sun, Jun 15, 2014 at 06:46:16PM +0300, Andrei Errapart wrote:
> Hallo,
>
>
> The attached patches are the result of compiling the dtc with the Microsoft
> Visual C (MSVC) in order to be able to run the dtc under Microsoft
> Windows.
Ok, so, in order to apply these, I'll need them one by one, with their
own commit messages and Signed-off-by lines.
>
> Short descriptions of the patches:
> checks: MSVC is unable to handle 0-sized array literals.
> fopen: Binary files should be opened in binary mode.
> signed-char: For MSVC, char defaults to signed char.
> dtc-header:
> 1) Variadic macro in the form "args..." is a GCC extension.
> 2) MSVC requires 0 to be present in a struct literal.
>
> On a Linux, all tests pass when these patches have been applied.
>
> We have been using the dtc on Windows computers for a few days and haven't
> had any problems so far. In the case people are interested in having the
> MSVC project file(s) and the few lightweight compatibility functions
> required for compilation, let me know and I can clean them up for public
> use.
>
>
> best regards,
> Andrei
> diff --git a/checks.c b/checks.c
> index 47eda65..cf07864 100644
> --- a/checks.c
> +++ b/checks.c
> @@ -61,17 +61,19 @@ struct check {
> #define CHECK_ENTRY(nm, tfn, nfn, pfn, d, w, e, ...) \
> static struct check *nm##_prereqs[] = { __VA_ARGS__ }; \
> static struct check nm = { \
> - .name = #nm, \
> - .tree_fn = (tfn), \
> - .node_fn = (nfn), \
> - .prop_fn = (pfn), \
> - .data = (d), \
> - .warn = (w), \
> - .error = (e), \
> - .status = UNCHECKED, \
> - .num_prereqs = ARRAY_SIZE(nm##_prereqs), \
> - .prereq = nm##_prereqs, \
> + #nm, \
> + (tfn), \
> + (nfn), \
> + (pfn), \
> + (d), \
> + (w), \
> + (e), \
> + UNCHECKED, \
> + false, \
> + ARRAY_SIZE(nm##_prereqs), \
> + nm##_prereqs \
Um.. I don't see what removing the C99 initializers has to do with
MSVC not supporting 0 size arrays
> };
> +
Please don't include unrelated whitespace changes.
> #define WARNING(nm, tfn, nfn, pfn, d, ...) \
> CHECK_ENTRY(nm, tfn, nfn, pfn, d, true, false, __VA_ARGS__)
> #define ERROR(nm, tfn, nfn, pfn, d, ...) \
> @@ -153,7 +155,7 @@ static bool run_check(struct check *c, struct node *dt)
>
> c->inprogress = true;
>
> - for (i = 0; i < c->num_prereqs; i++) {
> + for (i = 0; i < c->num_prereqs && c->prereq[i]!=NULL; i++) {
Hrm. I think I see what you're doing here, but it's kinda subtle.
Without a comment, I think someone's very likely to take it out again.
[snip]
> diff --git a/fstree.c b/fstree.c
> index 4d2791c..6d1beec 100644
> --- a/fstree.c
> +++ b/fstree.c
> @@ -52,7 +52,7 @@ static struct node *read_fstree(const char *dirname)
> struct property *prop;
> FILE *pfile;
>
> - pfile = fopen(tmpname, "r");
> + pfile = fopen(tmpname, "rb");
> if (! pfile) {
> fprintf(stderr,
> "WARNING: Cannot open %s: %s\n",
> diff --git a/srcpos.c b/srcpos.c
> index 4549773..f534c22 100644
> --- a/srcpos.c
> +++ b/srcpos.c
> @@ -77,7 +77,7 @@ static char *try_open(const char *dirname, const char *fname, FILE **fp)
> else
> fullname = join_path(dirname, fname);
>
> - *fp = fopen(fullname, "r");
> + *fp = fopen(fullname, "rb");
> if (!*fp) {
> free(fullname);
> fullname = NULL;
> diff --git a/dtc.c b/dtc.c
> index d36ccdc..e3665b6 100644
> --- a/dtc.c
> +++ b/dtc.c
> @@ -237,7 +237,7 @@ int main(int argc, char *argv[])
> if (streq(outname, "-")) {
> outf = stdout;
> } else {
> - outf = fopen(outname, "w");
> + outf = fopen(outname, "wb");
> if (! outf)
> die("Couldn't open output file %s: %s\n",
> outname, strerror(errno));
The fopen() mode patch I'm happy to take once it's sent with its own
comment and signed-off-by lines.
> diff --git a/treesource.c b/treesource.c
> index bf7a626..2386b93 100644
> --- a/treesource.c
> +++ b/treesource.c
> @@ -178,7 +178,7 @@ static void write_propval_bytes(FILE *f, struct data val)
> m = m->next;
> }
>
> - fprintf(f, "%02hhx", *bp++);
> + fprintf(f, "%02hhx", (unsigned char)(*bp++));
> if ((const void *)bp >= propend)
> break;
> fprintf(f, " ");
Likewise the unsigned char patch.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2014-06-16 10:46 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-15 15:46 [PATCH] Microsoft Visual C patches Andrei Errapart
[not found] ` <539DBFC8.4050204-VvktuG2w+SIZux3j3Bed6fC9HSW9iNxf@public.gmane.org>
2014-06-16 10:46 ` David Gibson [this message]
[not found] ` <20140616104628.GB29264-1s0os16eZneny3qCrzbmXA@public.gmane.org>
2014-06-17 17:18 ` Matthew Gerlach
2014-06-18 17:01 ` [PATCH 1/4] " Andrei Errapart
[not found] ` <53A1C5FC.9040105-VvktuG2w+SIZux3j3Bed6fC9HSW9iNxf@public.gmane.org>
2014-06-19 11:14 ` David Gibson
[not found] ` <20140619111459.GM29264-1s0os16eZneny3qCrzbmXA@public.gmane.org>
2014-06-19 14:17 ` Andrei Errapart
[not found] ` <53A2F104.90701-VvktuG2w+SIZux3j3Bed6fC9HSW9iNxf@public.gmane.org>
2014-06-19 15:06 ` Andrei Errapart
2014-06-20 12:55 ` David Gibson
[not found] ` <20140620125528.GB16801-1s0os16eZneny3qCrzbmXA@public.gmane.org>
2014-06-20 13:32 ` Simon Glass
2014-06-18 17:02 ` [PATCH 2/4] " Andrei Errapart
2014-06-18 17:03 ` [PATCH 3/4] " Andrei Errapart
2014-06-18 17:04 ` [PATCH 4/4] " Andrei Errapart
2014-06-18 17:27 ` [PATCH] " Andrei Errapart
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=20140616104628.GB29264@voom.redhat.com \
--to=david-xt8fgy+axnrb3ne2bgzf6laj5h9x9tb+@public.gmane.org \
--cc=andrei-VvktuG2w+SIZux3j3Bed6fC9HSW9iNxf@public.gmane.org \
--cc=devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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.