This is the mail archive of the cygwin-patches mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] cygwin: update child info magic


On 02/12/2016 01:05 PM, Yaakov Selkowitz wrote:

>> Off the top of my head, I don't know.  Usually only a change to
>> child_info.h should affect CHILD_INFO_MAGIC.  Unless the preprocessed
>> output of gcc differs for some reason.
> 
> It turns out it does.  Anything that is substituted by preprocessor is
> placed on its own line with gcc-5, e.g. with NULL and _SYMSTR:

Does the use of -P during preprocessing, to inhibit line markers, force
gcc to quit adding extra lines?

In my quick testing with Fedora's gcc 5.3.1:

$ printf '#include <stddef.h>\nstart NULL end\n' \
  | gcc -E    - | sed -n '/start/,$ p'
start
# 2 "<stdin>" 3 4
     ((void *)0)
# 2 "<stdin>"
          end

$ printf '#include <stddef.h>\nstart NULL end\n' \
  | gcc -E -P - | sed -n '/start/,$ p'
start ((void *)0) end

> -extern child_info_spawn *spawn_info asm ("_" "child_proc_info");
> -extern child_info_fork *fork_info asm ("_" "child_proc_info");
> +extern child_info_spawn *spawn_info asm (
> +                                        "_"

If it were merely a case of more vs. less whitespace, we could
postprocess (turn all newlines and space sequences into a single space);
but this is a case of introducing whitespace, making the problem
trickier, if -P doesn't work.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]