Getting Wales Moving 2019

2018-08-15 Thread Getting Wales Moving Conference
GETTING WALES MOVING

DELIVERING ON THE WELL-BEING OF WALES

27TH FEBRUARY 2019

HILTON HOTEL - CARDIFF

Following on from the hugely successful inaugural Getting Wales Moving
Conference - Delivering on the Well-being for Future Generations Act, we
are delighted to announce the second conference in the series on the 27th
of February 2019 at the Hilton Hotel, Cardiff.

Once again, we have set the bar high, both in terms of quality and
expectation of stimulating real change. The 2019 conference will again
feature influential and well-respected speakers with detailed insight from
the Welsh Government, Sport Wales, and leading figures involved in
improving population health and tackling inactivity and skills shortages
across the sector workforce and Welsh communities.

[1]CLICK FOR CONFERENCE WEBSITE

[2]

[3]

[4]

[5]

John McAvoy

Triathlon England

Gareth Davies

Welsh Rugby Union

Yvonne Harrison

Project '92

Ryan Jones

Welsh Rugby Union

The ambition for this series of "Getting Wales Moving" conferences is to
create a long term framework of communication and knowledge transfer to
ensure all available measures are being taken to deliver on the the well -
being of future generations.

To register for the conference, simply click the button below.

[6]REGISTER NOW

The conference will cover the following topics:
* Update on the Future of Well - Being Act
* What needs to change from both a policy and organisational perspective
to make the act a success.
* Developing a 6-36 month approach to delivery
* How do we drive improvements in our communities to deliver on the act
* What skills do we need that are not currently in place to ensure the
act is a success
* How can we work collaboratively? A unified approach to delivering the
act

[7]

Getting Wales Moving 2019

In association with

ICON TRAINING

Over the last 20 years, Icon has consistently proven to be a high quality
and visionary training provider. In recent years, the company was graded 1
'Outstanding' from Ofsted, and won Training Provider of the Year two years
running against high competition within the industry.

DELEGATE TICKET PRICING

PUBLIC & 3RD SECTOR TICKETS £175

PRIVATE SECTOR £295

Register online or call our conference team for more information on - +44
(0)161 246 6265

[8]

Click here to access speaker presentations and slides from the Getting
Wales Moving Conference held at the Hilton Hotel in Cardiff, February 2018

[9]WHAT WILL THE WELLBEING OF FUTURE GENERATIONS ACT MEAN TO ME?

[10]

[11]

[12]

[13]

[14]TAKE ME TO THE WEBSITE

F I N D O U T M O R E

Follow us on social media for more info & updates
[15]Twitter [16]LinkedIn [17]YouTube

References

1. 
http://wales2019.whysports.co.uk/index.php?alias=creating-active-communities-2018-conference-2&option=com_content&view=article&id=57&Itemid=134
2. http://sport.wales/
3. http://www.collegeswales.ac.uk/
4. http://www.wru.co.uk/
5. http://icon-training.com/
6. http://wales2019.whysports.co.uk/index.php?option=com_reg
7. http://icon-training.com/
8. http://wke.lt/w/s/MDHDl
9. http://thewaleswewant.co.uk/sites/default/files/Guide to the WFGAct.pdf
10. http://sport.wales/
11. http://www.collegeswales.ac.uk/
12. http://www.wru.co.uk/
13. http://icon-training.com/
14. 
http://wales2019.whysports.co.uk/index.php?alias=our-mission-skills-communities-2018&option=com_content&view=article&id=58&Itemid=196
15. https://www.twitter.com/whysportsmedia
16. https://www.linkedin.com/company/why-sports-media-group-limited
17. https://www.youtube.com/channel/UCvQMHl9pPd6GzA5MWCikjWw
Unsubscribe:
http://app.icontact.com/icp/mmail-mprofile.php?r=45048210&l=2500&s=9MBV&m=65759&c=1721525

This message was sent to gcc@gcc.gnu.org from wa...@whysports-events.co.uk

Getting Wales Moving Conference
Richard Stott
5300 Lakeside
Cheadle, Stockport SK8 3GP, United Kingdom
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

iContact - Try it for FREE: 
https://www.icontact.com/signup-trial?utm_medium=poweredby&utm_source=footerlink&utm_campaign=iC%20Footer&afid=144186



Re: Why did Intel change his static branch prediction mechanism over these years?

2018-08-15 Thread Florian Weimer

On 08/14/2018 03:36 PM, 2016 quekong wrote:


And Intel seems don't want to talk about it any more, because the latest
material I found within Intel Document was written about ten years ago.


Since branch prediction is nowadays a security feature, I doubt you will 
see detailed public documentation from any processor manufacturer.



I know static branch prediction is (far?) less important than dynamic, but
in quite a few situations, CPU will be completely lost and programmers(with
compiler) are usually the best guide. Of course these situations are
usually not performance bottleneck, because once a branch is frequently
executed, the dynamic predictor will capture it.


There is a movement to replace table-driven stack unwinding with a 
conditional branch after most function calls, and those branches should 
predict really well statically.  (And so would return value checks for 
almost all POSIX functions.)  Statically predicting those branches as 
not taken may free up branch prediction resources for other uses.


On the other hand, programmers tend to misuse __builtin_expect to say 
that something is unlikely to happen, while it can happen quite 
regularly during certain executions of the program.  So if 
__builtin_expect results in static hints from the compiler, the CPU will 
be better off ignoring those hints in most cases.


Thanks,
Florian


Re: Why did Intel change his static branch prediction mechanism over these years?

2018-08-15 Thread 2016 quekong
Hi, Florian.

>>>There is a movement to replace table-driven stack unwinding with a 
>>>conditional branch after most function calls...
I am sorry I don't understand its meaning, forgive my poor knowledge
of dynamic prediction, I am reading relative materials these days,
could you explain a little more for this sentence, or give me some
keywords for google ?

>>> programmers tend to misuse __builtin_expect ..
I believe you must have strong factual basis saying such words,  I can
quite accept  the CPU manufacturer's ignoring branch prediction hints
for some reasons, but not this,  One somewhat contrived example: if
most people of a country are blind, then the government forbid the car
to provide a safe road, may a better choice is asking the blind people
go to hospital to cure the eye.

Thanks again.







2018-08-15 17:26 GMT+08:00, Florian Weimer :
> On 08/14/2018 03:36 PM, 2016 quekong wrote:
>
>> And Intel seems don't want to talk about it any more, because the latest
>> material I found within Intel Document was written about ten years ago.
>
> Since branch prediction is nowadays a security feature, I doubt you will
> see detailed public documentation from any processor manufacturer.
>
>> I know static branch prediction is (far?) less important than dynamic,
>> but
>> in quite a few situations, CPU will be completely lost and
>> programmers(with
>> compiler) are usually the best guide. Of course these situations are
>> usually not performance bottleneck, because once a branch is frequently
>> executed, the dynamic predictor will capture it.
>
> There is a movement to replace table-driven stack unwinding with a
> conditional branch after most function calls, and those branches should
> predict really well statically.  (And so would return value checks for
> almost all POSIX functions.)  Statically predicting those branches as
> not taken may free up branch prediction resources for other uses.
>
> On the other hand, programmers tend to misuse __builtin_expect to say
> that something is unlikely to happen, while it can happen quite
> regularly during certain executions of the program.  So if
> __builtin_expect results in static hints from the compiler, the CPU will
> be better off ignoring those hints in most cases.
>
> Thanks,
> Florian
>


Re: [GSOC] LTO dump tool project - feedback

2018-08-15 Thread Martin Liška
Hi.

After last update of the branch, there's a feedback that will be needed
before we can adept to have it merged into trunk:

1) there's patch for lto-dump proper install:

diff --git a/gcc/lto/Make-lang.in b/gcc/lto/Make-lang.in
index e474f85ebc6..e9d2659025c 100644
--- a/gcc/lto/Make-lang.in
+++ b/gcc/lto/Make-lang.in
@@ -46,7 +46,10 @@ lto.all.cross: $(LTO_EXE) $(LTO_DUMP_EXE)
 lto.start.encap: $(LTO_EXE) $(LTO_DUMP_EXE)
 lto.rest.encap:
 lto.tags:
-lto.install-common:
+lto.install-common: installdirs
+   $(INSTALL_PROGRAM) $(LTO_DUMP_EXE) \
+ $(DESTDIR)/$(bindir)/$(LTO_DUMP_EXE)
+
 lto.install-man:
 lto.install-info:
 lto.dvi:

2) If I build bzip2 (just add -flto into Makefile) with your branch I see an 
ICE:

$ cd bzip2-1.0.6
$ make
[...]
gcc -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64 -flto=9   -o bzip2 bzip2.o -L. 
-lbz2
lto1: internal compiler error: unexpected offset
0x767bfc lto_resolution_read
../../gcc/lto/lto-common.c:1951
0x767bfc lto_file_read
../../gcc/lto/lto-common.c:2169
0x767bfc read_cgraph_and_symbols(unsigned int, char const**)
../../gcc/lto/lto-common.c:2631
0x74f042 lto_main()
../../gcc/lto/lto.c:580

3) I still see an extra info that is not needed:

Time variable   usr   sys  wall 
  GGC
 phase setup:   0.00 (  0%)   0.00 (  0%)   0.00 (  0%) 
   2029 kB ( 52%)
 phase parsing  :   0.01 (100%)   0.00 (  0%)   0.02 (100%) 
   1887 kB ( 48%)
 ipa cp :   0.00 (  0%)   0.00 (  0%)   0.01 ( 50%) 
119 kB (  3%)
 ipa lto gimple in  :   0.00 (  0%)   0.00 (  0%)   0.00 (  0%) 
   1136 kB ( 29%)
 tree operand scan  :   0.01 (100%)   0.00 (  0%)   0.01 ( 50%) 
158 kB (  4%)
 TOTAL  :   0.01  0.00  0.02
   3917 kB
Extra diagnostic checks enabled; compiler may run slowly.
Configure with --enable-checking=release to disable checks.

4) -list:
 a) please add header, it was useful
 b) -no-sort makes no sense to me, it's default isn't it?

5) -symbol=
 a) if symbol is not found, we should print an error
6) -objects= - why '=' ?
7) -type-stats - you have extra empty lines at the beginning
   - please align header with values
8) -tree-stats - probably also --enable-gather-.. is needed?
9) -dump-body - again, if does not exist, error should be printed
10) -dump-level - again error if wrong value, document possible values if 
possible
11) please fix formatting of lto-dump so that it explains which suboptions are 
possible:

$ gcov-tool --help
Usage: gcov-tool [OPTION]... SUB_COMMAND [OPTION]...

Offline tool to handle gcda counts

  -h, --helpPrint this help, then exit
  -v, --version Print version number, then exit
  merge [options]   Merge coverage file contents
-o, --output   Output directory
-v, --verbose   Verbose mode
-w, --weight Set weights (float point values)
  rewrite [options]Rewrite coverage file contents
-n, --normalizeNormalize the profile
-o, --output   Output directory
-s, --scale   Scale the profile counters
-v, --verbose   Verbose mode
  overlap [options] Compute the overlap of two profiles
-f, --function  Print function level info
-F, --fullname  Print full filename
-h, --hotonly   Only print info for hot 
objects/functions
-o, --objectPrint object level info
-t , --hot_threshold  Set the threshold for hotness
-v, --verbose   Verbose mode

12) Do not name it in documentation 'lto-dump-tool', use simply 'lto-dump'.
13) make sure man page is generated for lto-dump
14) I noticed that you smashed some whitespaces for files where you didn't do 
any
changes: gcc/tree.c, lto.c(do_whole_program_analysis) and other places
15) test the tool on a bigger program built with LTO, ideally for both LGEN and 
also
LTRANS files
16) The last bigger challenge is the option handling, we currently participate 
in lto/lang.opt.
Ideally I would prefer using standard mechanism getopt_long, take a look at 
gcov-dump.c.
Can you please investigate that.

Anyway, thank you for working on that. I hope we can send a patch submission 
into GCC's trunk soon.
Martin


Re: Why did Intel change his static branch prediction mechanism over these years?

2018-08-15 Thread Florian Weimer

On 08/15/2018 01:16 PM, 2016 quekong wrote:

Hi, Florian.


There is a movement to replace table-driven stack unwinding with a conditional 
branch after most function calls...



I am sorry I don't understand its meaning, forgive my poor knowledge
of dynamic prediction, I am reading relative materials these days,
could you explain a little more for this sentence, or give me some
keywords for google ?


See Herb Sutter, “Zero-overhead deterministic exceptions: Throwing 
values”.  (The “Zero-overhead” is misleading.)



programmers tend to misuse __builtin_expect ..



I believe you must have strong factual basis saying such words,  I can
quite accept  the CPU manufacturer's ignoring branch prediction hints
for some reasons, but not this,


We just removed a __builtin_except from the dynamic linker that 
indicated the wrong way for more than a decade, maybe even two decades. 
We have anymore that strongly suggest that you run in the C locale or in 
a single-byte locale, neither of which are generally true these days.


Thanks,
Florian


Re: Trying to convert to LRA, running into an ICE (infinite reload loop)

2018-08-15 Thread Paul Koning



> On Aug 15, 2018, at 1:01 AM, Jeff Law  wrote:
> 
> On 08/14/2018 01:32 PM, Paul Koning wrote:
>> I'm trying to convert the pdp11 target to use LRA.
>> 
>> A lot of it "just works".  But one of the test suite files fails in a way 
>> that I can't figure out at all.  I'm hoping for some help or hints to track 
>> down the cause and come up with a fix.
>> 
>> The failing program is testsuite/gcc.c-torture/compile/ifreg.c:
>> 
>> union foo
>> {
>>  float f;
>>  int i;
>> };
>> 
>> foo (int a, float c)
>> {
>>  union foo b;
>>  b.i = a;
>>  return b.f + c;
>> }
>> 
>> When compiled in LRA mode, I get this:
>> 
>> during RTL pass: reload
>> dump file: ifreg.c.274r.reload
>> ../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c: In function ‘foo’:
>> ../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c:12:1: internal 
>> compiler error: Max. number of generated reload insns per insn is achieved 
>> (90)
>> 
>> I fiddled a bit with the mov patterns, for example disabling the 
>> patterns that work on multi-word values (SI and DI mode, since pdp11 word is 
>> HImode).  That doesn't fix (or create) the failure, though the specific 
>> insns change as a result.
>> 
>> What I see going in to reload (from the "ira" dump file) is:
>> 
>> (note 5 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
>> (note 2 5 4 2 NOTE_INSN_DELETED)
>> (note 4 2 22 2 NOTE_INSN_FUNCTION_BEG)
>> (insn 22 4 18 2 (clobber (reg/v:DI 26 [ b ])) 
>> "../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c":10 -1
>> (nil))
>> (insn 18 22 19 2 (set (subreg:HI (reg/v:DI 26 [ b ]) 0)
>>(const_int 0 [0])) 
>> "../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c":10 21 {movhi}
>> (nil))
>> (insn 19 18 20 2 (set (subreg:HI (reg/v:DI 26 [ b ]) 2)
>>(const_int 0 [0])) 
>> "../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c":10 21 {movhi}
>> (nil))
>> ...
>> 
>> Reload shows this:
>> 
>> (note 5 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
>> (note 2 5 4 2 NOTE_INSN_DELETED)
>> (note 4 2 22 2 NOTE_INSN_FUNCTION_BEG)
>> (insn 22 4 18 2 (clobber (reg/v:DI 26 [ b ])) 
>> "../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c":10 -1
>> (nil))
>> (insn 18 22 25 2 (set (reg:HI 32)
>>(const_int 0 [0])) 
>> "../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c":10 21 {movhi}
>> (nil))
>> (insn 25 18 26 2 (set (reg:HI 33)
>>(reg:HI 32)) 
>> "../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c":10 21 {movhi}
>> (nil))
>> (insn 26 25 27 2 (set (reg:HI 34)
>>(reg:HI 33)) 
>> "../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c":10 21 {movhi}
>> (nil))
>> (insn 27 26 28 2 (set (reg:HI 35)
>>(reg:HI 34)) 
>> "../../gcc/gcc/testsuite/gcc.c-torture/compile/ifreg.c":10 21 {movhi}
>> (nil))
>> ... with insns that do nothing, like the one above, repeating until it gives 
>> up.
>> 
>> At the top of the dump file where LRA is reporting what it's doing, I see 
>> this:
>> 
>> ** Local #1: **
>> 
>> Spilling non-eliminable hard regs: 6
>> New elimination table:
>> Can eliminate 15 to 6 (offset=10, prev_offset=0)
>> Can eliminate 15 to 5 (offset=4, prev_offset=0)
>> Can eliminate 14 to 6 (offset=8, prev_offset=0)
>> Can eliminate 14 to 5 (offset=0, prev_offset=0)
>>0 Non input pseudo reload: reject++
>>  alt=0,overall=7,losers=1,rld_nregs=1
>>0 Non input pseudo reload: reject++
>>  alt=1,overall=7,losers=1,rld_nregs=1
>>alt=2: Bad operand -- refuse
>>alt=3: Bad operand -- refuse
>>   Choosing alt 0 in insn 18:  (0) =rR  (1) rRN {movhi}
> We've selected alternative 0 for insn 18.  I believe that's the rRN ->
> =rR alternative.

Yes, specifically it matches the "N" source constraint (literal zero operand).

>>  Creating newreg=32, assigning class GENERAL_REGS to r32
> The insn did not match its constraints.  So some kind of reload is
> needed.  We allocate a new reload register r32.
> 
>>   18: r32:HI=0
>>Inserting insn reload after:
> And we try to initialize r32 to 0.  Which of course needs another reload.
> 
> I suspect LRA is somehow missing that the operand could live in memory.

Not exactly memory, the source operand is constant 0 and the resulting machine 
instruction will be a "clr".  The puzzle is why it doesn't see it as matching 
when (a) it clearly does and (b) LRA knew that because it told us so in that 
first match (it chose alternative zero).

What should I look at next to try to figure out why LRA is getting confused?

paul



Help with fixinclude fix for PR86599

2018-08-15 Thread Albert Chin
Hi. I've come up with a fixincl fix for PR86599 but "make check" in
the fixincludes directory does not work and I do not know why. I know
just enough fixincl-fu to produce a patch for this issue. I am trying
to convert a chunk of code in stdlib on HP-UX 11.31/PA:

#  ifndef _LONG_DOUBLE
#define _LONG_DOUBLE
#  if !defined(__ia64) || !defined(_PROTOTYPES) || defined(_LONG_DOUBLE_STRUCT)
typedef struct {
uint32_t word1, word2, word3, word4;
} long_double;
extern long_double strtold __((const char * __restrict, char ** __restrict));
#  else /* !__ia64 || !_PROTOTYPES || _LONG_DOUBLE_STRUCT */
#ifdef _INCLUDE_HPUX_SOURCE
typedef long double long_double;
#endif /* _INCLUDE_HPUX_SOURCE */
extern long double strtold __((const char * __restrict, char ** __restrict));
#  endif /* !__ia64 ||!_PROTOTYPES ||_LONG_DOUBLE_STRUCT */
#endif /* _LONG_DOUBLE */

to:

extern long double strtold(const char *, char **);

I am doing this by fixing hpux_long_double_2 so it now looks like:
fix = {
hackname  = hpux_long_double_2;
mach  = "hppa*-*-hpux11.3*";
files = stdlib.h;
select= "extern[ \t]long_double[ \t]strtold";
bypass= "long_double_t";
sed   = "/^#[ \t]*ifndef _LONG_DOUBLE/,"
"/\\/\\* _LONG_DOUBLE \\*\\//c\\\n"
"extern long double strtold(const char *, char **);\n";
sed   = "s/long_double/long double/g";

test_text = "#  ifndef _LONG_DOUBLE\n"
"#define _LONG_DOUBLE\n"
" typedef struct {\n"
"   unsigned int word1, word2, word3, word4;\n"
" } long_double;\n"
"extern long_double strtold(const char *, char **);\n"
"#  endif /* _LONG_DOUBLE */\n";
};

This works but "make check" returns:

stdlib.h /opt/build/gcc-8.2.0/fixincludes/tests/base/stdlib.h differ: char 
1475, line 59
*** stdlib.hWed Aug 15 19:38:37 2018
--- /opt/build/gcc-8.2.0/fixincludes/tests/base/stdlib.hThu Feb 22 
16:12:26 2018
***
*** 56,61 
--- 56,62 
  
  
  #if defined( HPUX_LONG_DOUBLE_2_CHECK )
+ #  if !defined(__ia64) || !defined(_PROTOTYPES) || 
defined(_LONG_DOUBLE_STRUCT)
  
  #endif  /* HPUX_LONG_DOUBLE_2_CHECK */

There were fixinclude test FAILURES

Any ideas?

-- 
albert chin (ch...@thewrittenword.com)


Re: Help with fixinclude fix for PR86599

2018-08-15 Thread David Edelsohn
You must manually insert the additional test lines into the appropriate
file in fixincludes/tests/base and then retest.

Please see step (6) in fixincludes/README

Thanks, David




On Wed, Aug 15, 2018 at 3:46 PM Albert Chin 
wrote:

> Hi. I've come up with a fixincl fix for PR86599 but "make check" in
> the fixincludes directory does not work and I do not know why. I know
> just enough fixincl-fu to produce a patch for this issue. I am trying
> to convert a chunk of code in stdlib on HP-UX 11.31/PA:
>
> #  ifndef _LONG_DOUBLE
> #define _LONG_DOUBLE
> #  if !defined(__ia64) || !defined(_PROTOTYPES) ||
> defined(_LONG_DOUBLE_STRUCT)
> typedef struct {
> uint32_t word1, word2, word3, word4;
> } long_double;
> extern long_double strtold __((const char * __restrict, char **
> __restrict));
> #  else /* !__ia64 || !_PROTOTYPES || _LONG_DOUBLE_STRUCT */
> #ifdef _INCLUDE_HPUX_SOURCE
> typedef long double long_double;
> #endif /* _INCLUDE_HPUX_SOURCE */
> extern long double strtold __((const char * __restrict, char **
> __restrict));
> #  endif /* !__ia64 ||!_PROTOTYPES ||_LONG_DOUBLE_STRUCT */
> #endif /* _LONG_DOUBLE */
>
> to:
>
> extern long double strtold(const char *, char **);
>
> I am doing this by fixing hpux_long_double_2 so it now looks like:
> fix = {
> hackname  = hpux_long_double_2;
> mach  = "hppa*-*-hpux11.3*";
> files = stdlib.h;
> select= "extern[ \t]long_double[ \t]strtold";
> bypass= "long_double_t";
> sed   = "/^#[ \t]*ifndef _LONG_DOUBLE/,"
> "/\\/\\* _LONG_DOUBLE \\*\\//c\\\n"
> "extern long double strtold(const char *, char **);\n";
> sed   = "s/long_double/long double/g";
>
> test_text = "#  ifndef _LONG_DOUBLE\n"
> "#define _LONG_DOUBLE\n"
> " typedef struct {\n"
> "   unsigned int word1, word2, word3, word4;\n"
> " } long_double;\n"
> "extern long_double strtold(const char *, char **);\n"
> "#  endif /* _LONG_DOUBLE */\n";
> };
>
> This works but "make check" returns:
>
> stdlib.h /opt/build/gcc-8.2.0/fixincludes/tests/base/stdlib.h differ: char
> 1475, line 59
> *** stdlib.hWed Aug 15 19:38:37 2018
> --- /opt/build/gcc-8.2.0/fixincludes/tests/base/stdlib.hThu Feb 22
> 16:12:26 2018
> ***
> *** 56,61 
> --- 56,62 
>
>
>   #if defined( HPUX_LONG_DOUBLE_2_CHECK )
> + #  if !defined(__ia64) || !defined(_PROTOTYPES) ||
> defined(_LONG_DOUBLE_STRUCT)
>
>   #endif  /* HPUX_LONG_DOUBLE_2_CHECK */
>
> There were fixinclude test FAILURES
>
> Any ideas?
>
> --
> albert chin (ch...@thewrittenword.com)
>


Re: Help with fixinclude fix for PR86599

2018-08-15 Thread Albert Chin
On Wed, Aug 15, 2018 at 03:52:33PM -0400, David Edelsohn wrote:
> You must manually insert the additional test lines into the appropriate
> file in fixincludes/tests/base and then retest.
> 
> Please see step (6) in fixincludes/README

Ok, thanks. fixincludes/tests/res/stdlib.h has:
  #if defined( HPUX_LONG_DOUBLE_CHECK )
  extern long double strtold(const char *, char **);

  #endif  /* HPUX_LONG_DOUBLE_CHECK */

  #if defined( HPUX_LONG_DOUBLE_2_CHECK )
  #  if !defined(__ia64) || !defined(_PROTOTYPES) || 
defined(_LONG_DOUBLE_STRUCT)
 
  #endif  /* HPUX_LONG_DOUBLE_2_CHECK */

The body of HPUX_LONG_DOUBLE_2_CHECK is no longer valid with my fix.
I'm thinking it should look like HPUX_LONG_DOUBLE_CHECK so I modified
HPUX_LONG_DOUBLE_2_CHECK to look like HPUX_LONG_DOUBLE_CHECK.

However, when I run "make check", fixincludes/tests/res/stdlib.h has:
  #if defined( HPUX_LONG_DOUBLE_2_CHECK )

  #endif  /* HPUX_LONG_DOUBLE_2_CHECK */

So, I modified test_text to the following:
test_text = "#  ifndef _LONG_DOUBLE\n"
"#define _LONG_DOUBLE\n"
" typedef struct {\n"
"   unsigned int word1, word2, word3, word4;\n"
" } long_double;\n"
"#  endif /* _LONG_DOUBLE */\n"
"extern long_double strtold(const char *, char **);\n";
rather than:
test_text = "#  ifndef _LONG_DOUBLE\n"
"#define _LONG_DOUBLE\n"
" typedef struct {\n"
"   unsigned int word1, word2, word3, word4;\n"
" } long_double;\n"
"extern long_double strtold(const char *, char **);\n"
"#  endif /* _LONG_DOUBLE */\n";

and modified fixincludes/tests/base/stdlib.h to:
  #if defined( HPUX_LONG_DOUBLE_CHECK )
  extern long double strtold(const char *, char **);

  #endif  /* HPUX_LONG_DOUBLE_CHECK */


  #if defined( HPUX_LONG_DOUBLE_2_CHECK )
  extern long double strtold(const char *, char **);

  #endif  /* HPUX_LONG_DOUBLE_2_CHECK */

I don't know why the change to test_text causes "make check" to
succeed though.

> Thanks, David
> 
> 
> 
> 
> On Wed, Aug 15, 2018 at 3:46 PM Albert Chin 
> wrote:
> 
> > Hi. I've come up with a fixincl fix for PR86599 but "make check" in
> > the fixincludes directory does not work and I do not know why. I know
> > just enough fixincl-fu to produce a patch for this issue. I am trying
> > to convert a chunk of code in stdlib on HP-UX 11.31/PA:
> >
> > #  ifndef _LONG_DOUBLE
> > #define _LONG_DOUBLE
> > #  if !defined(__ia64) || !defined(_PROTOTYPES) ||
> > defined(_LONG_DOUBLE_STRUCT)
> > typedef struct {
> > uint32_t word1, word2, word3, word4;
> > } long_double;
> > extern long_double strtold __((const char * __restrict, char **
> > __restrict));
> > #  else /* !__ia64 || !_PROTOTYPES || _LONG_DOUBLE_STRUCT */
> > #ifdef _INCLUDE_HPUX_SOURCE
> > typedef long double long_double;
> > #endif /* _INCLUDE_HPUX_SOURCE */
> > extern long double strtold __((const char * __restrict, char **
> > __restrict));
> > #  endif /* !__ia64 ||!_PROTOTYPES ||_LONG_DOUBLE_STRUCT */
> > #endif /* _LONG_DOUBLE */
> >
> > to:
> >
> > extern long double strtold(const char *, char **);
> >
> > I am doing this by fixing hpux_long_double_2 so it now looks like:
> > fix = {
> > hackname  = hpux_long_double_2;
> > mach  = "hppa*-*-hpux11.3*";
> > files = stdlib.h;
> > select= "extern[ \t]long_double[ \t]strtold";
> > bypass= "long_double_t";
> > sed   = "/^#[ \t]*ifndef _LONG_DOUBLE/,"
> > "/\\/\\* _LONG_DOUBLE \\*\\//c\\\n"
> > "extern long double strtold(const char *, char **);\n";
> > sed   = "s/long_double/long double/g";
> >
> > test_text = "#  ifndef _LONG_DOUBLE\n"
> > "#define _LONG_DOUBLE\n"
> > " typedef struct {\n"
> > "   unsigned int word1, word2, word3, word4;\n"
> > " } long_double;\n"
> > "extern long_double strtold(const char *, char **);\n"
> > "#  endif /* _LONG_DOUBLE */\n";
> > };
> >
> > This works but "make check" returns:
> >
> > stdlib.h /opt/build/gcc-8.2.0/fixincludes/tests/base/stdlib.h differ: char
> > 1475, line 59
> > *** stdlib.hWed Aug 15 19:38:37 2018
> > --- /opt/build/gcc-8.2.0/fixincludes/tests/base/stdlib.hThu Feb 22
> > 16:12:26 2018
> > ***
> > *** 56,61 
> > --- 56,62 
> >
> >
> >   #if defined( HPUX_LONG_DOUBLE_2_CHECK )
> > + #  if !defined(__ia64) || !defined(_PROTOTYPES) ||
> > defined(_LONG_DOUBLE_STRUCT)
> >
> >   #endif  /* HPUX_LONG_DOUBLE_2_CHECK */
> >
> > There were fixinclude test FAILURES
> >
> > Any ideas?
> >
> > --
> > albert chin (ch...@thewrittenword.com)
> >

-- 
albert chin (ch...@thewrittenword.com)


Re: Help with fixinclude fix for PR86599

2018-08-15 Thread David Edelsohn
The change should not unintentionally affect existing tests.

The new test should be exactly the text that "make check" produces, not
what you think it should look like and not like another, neighboring test.
If the test doesn't look as you expect, you need to examine your test text.

You also can try to ask Bruce Korb for some advice. Few modern targets
require fixincludes.

Thanks, David

On Wed, Aug 15, 2018 at 4:38 PM Albert Chin 
wrote:

> On Wed, Aug 15, 2018 at 03:52:33PM -0400, David Edelsohn wrote:
> > You must manually insert the additional test lines into the appropriate
> > file in fixincludes/tests/base and then retest.
> >
> > Please see step (6) in fixincludes/README
>
> Ok, thanks. fixincludes/tests/res/stdlib.h has:
>   #if defined( HPUX_LONG_DOUBLE_CHECK )
>   extern long double strtold(const char *, char **);
>
>   #endif  /* HPUX_LONG_DOUBLE_CHECK */
>
>   #if defined( HPUX_LONG_DOUBLE_2_CHECK )
>   #  if !defined(__ia64) || !defined(_PROTOTYPES) ||
> defined(_LONG_DOUBLE_STRUCT)
>
>   #endif  /* HPUX_LONG_DOUBLE_2_CHECK */
>
> The body of HPUX_LONG_DOUBLE_2_CHECK is no longer valid with my fix.
> I'm thinking it should look like HPUX_LONG_DOUBLE_CHECK so I modified
> HPUX_LONG_DOUBLE_2_CHECK to look like HPUX_LONG_DOUBLE_CHECK.
>
> However, when I run "make check", fixincludes/tests/res/stdlib.h has:
>   #if defined( HPUX_LONG_DOUBLE_2_CHECK )
>
>   #endif  /* HPUX_LONG_DOUBLE_2_CHECK */
>
> So, I modified test_text to the following:
> test_text = "#  ifndef _LONG_DOUBLE\n"
> "#define _LONG_DOUBLE\n"
> " typedef struct {\n"
> "   unsigned int word1, word2, word3, word4;\n"
> " } long_double;\n"
> "#  endif /* _LONG_DOUBLE */\n"
> "extern long_double strtold(const char *, char **);\n";
> rather than:
> test_text = "#  ifndef _LONG_DOUBLE\n"
> "#define _LONG_DOUBLE\n"
> " typedef struct {\n"
> "   unsigned int word1, word2, word3, word4;\n"
> " } long_double;\n"
> "extern long_double strtold(const char *, char **);\n"
> "#  endif /* _LONG_DOUBLE */\n";
>
> and modified fixincludes/tests/base/stdlib.h to:
>   #if defined( HPUX_LONG_DOUBLE_CHECK )
>   extern long double strtold(const char *, char **);
>
>   #endif  /* HPUX_LONG_DOUBLE_CHECK */
>
>
>   #if defined( HPUX_LONG_DOUBLE_2_CHECK )
>   extern long double strtold(const char *, char **);
>
>   #endif  /* HPUX_LONG_DOUBLE_2_CHECK */
>
> I don't know why the change to test_text causes "make check" to
> succeed though.
>
> > Thanks, David
> >
> >
> >
> >
> > On Wed, Aug 15, 2018 at 3:46 PM Albert Chin <
> g...@mlists.thewrittenword.com>
> > wrote:
> >
> > > Hi. I've come up with a fixincl fix for PR86599 but "make check" in
> > > the fixincludes directory does not work and I do not know why. I know
> > > just enough fixincl-fu to produce a patch for this issue. I am trying
> > > to convert a chunk of code in stdlib on HP-UX 11.31/PA:
> > >
> > > #  ifndef _LONG_DOUBLE
> > > #define _LONG_DOUBLE
> > > #  if !defined(__ia64) || !defined(_PROTOTYPES) ||
> > > defined(_LONG_DOUBLE_STRUCT)
> > > typedef struct {
> > > uint32_t word1, word2, word3, word4;
> > > } long_double;
> > > extern long_double strtold __((const char * __restrict, char **
> > > __restrict));
> > > #  else /* !__ia64 || !_PROTOTYPES || _LONG_DOUBLE_STRUCT */
> > > #ifdef _INCLUDE_HPUX_SOURCE
> > > typedef long double long_double;
> > > #endif /* _INCLUDE_HPUX_SOURCE */
> > > extern long double strtold __((const char * __restrict, char **
> > > __restrict));
> > > #  endif /* !__ia64 ||!_PROTOTYPES ||_LONG_DOUBLE_STRUCT */
> > > #endif /* _LONG_DOUBLE */
> > >
> > > to:
> > >
> > > extern long double strtold(const char *, char **);
> > >
> > > I am doing this by fixing hpux_long_double_2 so it now looks like:
> > > fix = {
> > > hackname  = hpux_long_double_2;
> > > mach  = "hppa*-*-hpux11.3*";
> > > files = stdlib.h;
> > > select= "extern[ \t]long_double[ \t]strtold";
> > > bypass= "long_double_t";
> > > sed   = "/^#[ \t]*ifndef _LONG_DOUBLE/,"
> > > "/\\/\\* _LONG_DOUBLE \\*\\//c\\\n"
> > > "extern long double strtold(const char *, char **);\n";
> > > sed   = "s/long_double/long double/g";
> > >
> > > test_text = "#  ifndef _LONG_DOUBLE\n"
> > > "#define _LONG_DOUBLE\n"
> > > " typedef struct {\n"
> > > "   unsigned int word1, word2, word3, word4;\n"
> > > " } long_double;\n"
> > > "extern long_double strtold(const char *, char **);\n"
> > > "#  endif /* _LONG_DOUBLE */\n";
> > > };
> > >
> > > This works but "make check" returns:
> > >
> > > stdlib.h /opt/build/gcc-8.2.0/fixincludes/tests/base/stdlib.h differ:
> char

gcc-6-20180815 is now available

2018-08-15 Thread gccadmin
Snapshot gcc-6-20180815 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/6-20180815/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 6 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-6-branch 
revision 263572

You'll find:

 gcc-6-20180815.tar.xzComplete GCC

  SHA256=ba3abe07f23ef0c86fbc3471943b0e30af57161cc2468a230f30661372935bfc
  SHA1=0d4350008b804a5ba5020d667b7c8ad4b8d6d214

Diffs from 6-20180808 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-6
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.