Re: GDC build [was: Re: Sort order of dirEntries]

2012-10-26 Thread Joseph Rushton Wakeling

On 10/26/2012 04:51 AM, H. S. Teoh wrote:

Hmm. Try apt-get install libppl0.11-dev, maybe? That's where that file
should be. AFAIK apt-get build-dep should've pulled that one in, but
just in case it didn't, this may help.


It's installed, but the headers in /usr/include/x86_64-linux-gnu/ instead of 
just /usr/include/ -- it's a multiarch thing again.


So, I symlinked /usr/include/x86_64-linux-gnu/ppl* to /usr/include/ and that 
seems to get round it.


I also tried running make without the -j4 option, in case there was something 
about the parallel build jobs that was screwing things up.


So, now it falls over with a whole bunch of new errors, ending with the 
following:

---
libbackend.a(tree-scalar-evolution.o): In function 
`gt_ggc_mx_scev_info_str(void*)':
tree-scalar-evolution.c:(.text+0x4bd0): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'

libbackend.a(tree-scalar-evolution.o): In function 
`gt_pch_nx_scev_info_str(void*)':
tree-scalar-evolution.c:(.text+0x4c91): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'

libbackend.a(tree-scalar-evolution.o): In function 
`gt_ggc_mx_scev_info_str(void*)':
tree-scalar-evolution.c:(.text+0x4bdf): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'

libbackend.a(tree-scalar-evolution.o): In function 
`gt_pch_nx_scev_info_str(void*)':
tree-scalar-evolution.c:(.text+0x4ca0): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'

libbackend.a(tree.o): In function `gt_pch_nx_type_hash(void*)':
tree.c:(.text+0x785): undefined reference to `gt_pch_nx_lang_tree_node(void*)'
libbackend.a(tree.o): In function `gt_ggc_mx_type_hash(void*)':
tree.c:(.text+0x844): undefined reference to `gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1ab8): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1ac0): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1ae8): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1af0): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1b78): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1b80): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1ba0): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1ba8): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1bc8): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1bd0): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1bf0): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1bf8): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1c18): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(tree.o):(.rodata+0x1c20): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x55b8): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x55c0): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x55e0): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x55e8): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x5608): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x5610): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x56f8): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x5700): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x5720): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x5728): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x5748): undefined reference to 
`gt_ggc_mx_lang_tree_node(void*)'
libbackend.a(i386.o):(.rodata+0x5750): undefined reference to 
`gt_pch_nx_lang_tree_node(void*)'

collect2: error: ld returned 1 exit status
make[3]: *** [cc1d] Error 1
---

What's really annoying is that AFAICS all of these last errors occur at the 
point where the gdc executable is being linked ... :-\




Re: Sort order of dirEntries

2012-10-26 Thread Regan Heath
On Thu, 25 Oct 2012 01:15:06 +0100, Joseph Rushton Wakeling  
joseph.wakel...@webdrake.net wrote:



Hello all,

I've just been playing with dirEntries and by the looks of it, it  
returns these entries in arbitrary order.


On windows, assuming it was using FindFirstFile or similar you would get  
alphabetical order on some platforms/file systems and FAT table order on  
others.  I imagine linux and associated platforms have similar behaviour.


Is there a way to get it to sort the entries in alphabetical order,  
other than the obvious one of storing them in an array and sorting  
that?  (This is untenable because I'm talking about a lot of files...:-)


To get a sorted list someone has to load all the entries and sort them.  I  
doubt the file system is going to do it, so either the library routine  
would have to, or you're going to have to.  As most file systems and  
libraries should take the most efficient approach first and foremost it's  
likely you're going to have to do it yourself.


:)

R

--
Using Opera's revolutionary email client: http://www.opera.com/mail/


Re: GDC build [was: Re: Sort order of dirEntries]

2012-10-26 Thread H. S. Teoh
On Fri, Oct 26, 2012 at 02:36:18PM +0200, Joseph Rushton Wakeling wrote:
 On 10/26/2012 04:51 AM, H. S. Teoh wrote:
 Hmm. Try apt-get install libppl0.11-dev, maybe? That's where that
 file should be. AFAIK apt-get build-dep should've pulled that one in,
 but just in case it didn't, this may help.
 
 It's installed, but the headers in /usr/include/x86_64-linux-gnu/
 instead of just /usr/include/ -- it's a multiarch thing again.

Hmm. Are the Ubuntu patches incomplete then? I would've thought the
patches in debian/patches should have taken care of this.


 So, I symlinked /usr/include/x86_64-linux-gnu/ppl* to /usr/include/
 and that seems to get round it.
 
 I also tried running make without the -j4 option, in case there was
 something about the parallel build jobs that was screwing things up.

I always built with -j6 (don't have the patience to wait that long) and
that never seemed to have made a difference in whether the build
succeeded.


 So, now it falls over with a whole bunch of new errors, ending with the 
 following:
 
 ---
 libbackend.a(tree-scalar-evolution.o): In function 
 `gt_ggc_mx_scev_info_str(void*)':
 tree-scalar-evolution.c:(.text+0x4bd0): undefined reference to
 `gt_ggc_mx_lang_tree_node(void*)'
[...]

Hmm. Googling for the missing symbol seems to relate it to LTO, so maybe
try --disable-lto to see if that gets it through?

Also, if you aren't already, make sure you start with a clean, empty
objdir everytime you rebuild (I usually run \rm -rf *; configure ...;
make -j6), because the miserable system doesn't know how to continue
building from where it left off, and sometimes detritus leftover from
previous attempts can interfere with the build. You probably already
know this, but, just to make sure all bases are covered.


T

-- 
When solving a problem, take care that you do not become part of the problem.


Re: GDC build [was: Re: Sort order of dirEntries]

2012-10-26 Thread Joseph Rushton Wakeling

On 10/26/2012 06:57 PM, H. S. Teoh wrote:

Hmm. Are the Ubuntu patches incomplete then? I would've thought the
patches in debian/patches should have taken care of this.


I've posted a follow-up to the d.gnu list, since that's really where this 
discussion belongs, but just to say you were probably right to suspect something 
was wrong with my application of the patches.  I decided to download a fresh 
copy of the apt-get source and reapply the patches; now, with the symlinks 
removed, the build proceeds without the errors related to crti.o or header files.


It still falls over in what looks like the same place as last described, though, 
even if I try the --disable-lto option. :-(



Also, if you aren't already, make sure you start with a clean, empty
objdir everytime you rebuild (I usually run \rm -rf *; configure ...;
make -j6), because the miserable system doesn't know how to continue
building from where it left off, and sometimes detritus leftover from
previous attempts can interfere with the build. You probably already
know this, but, just to make sure all bases are covered.


Yea, it's what I was doing, removing and making a fresh build.  Re the -j 
option, I still find that the build falls over in different ways depending on 
whether I use that option or not (cf. my post in d.gnu).




Re: Sort order of dirEntries

2012-10-25 Thread Joseph Rushton Wakeling

On 10/25/2012 02:30 AM, H. S. Teoh wrote:

This may not be possible if the OS doesn't keep the entries in sorted
order (and from what I know, most OS's don't; it's only sorted upon
display). *Somebody* will have to do the sorting, whether it's the OS,
or the library or user code. The performance penalty will still be
incurred regardless.


... and interestingly enough the sort order seems to be different depending on 
the choice of compiler.




Re: Sort order of dirEntries

2012-10-25 Thread H. S. Teoh
On Thu, Oct 25, 2012 at 04:22:43PM +0200, Joseph Rushton Wakeling wrote:
 On 10/25/2012 02:30 AM, H. S. Teoh wrote:
 This may not be possible if the OS doesn't keep the entries in sorted
 order (and from what I know, most OS's don't; it's only sorted upon
 display). *Somebody* will have to do the sorting, whether it's the
 OS, or the library or user code. The performance penalty will still
 be incurred regardless.
 
 ... and interestingly enough the sort order seems to be different
 depending on the choice of compiler.

Oh, really? I couldn't reproduce that effect on my system (Debian Linux
64-bit) with dmd (latest git) and gdc (git gdc-4.7 branch). I always get
the same ordering regardless of the compiler I used.

For reference, here's my code:

import std.file;
import std.stdio;

void main(string[] args) {
auto entries = dirEntries(args.length  1 ? args[1] : .,
SpanMode.shallow);

foreach (e; entries) {
writeln(e);
}
}


T

-- 
Those who don't understand Unix are condemned to reinvent it, poorly.


Re: Sort order of dirEntries

2012-10-25 Thread Joseph Rushton Wakeling

On 10/25/2012 07:17 PM, H. S. Teoh wrote:

Oh, really? I couldn't reproduce that effect on my system (Debian Linux
64-bit) with dmd (latest git) and gdc (git gdc-4.7 branch). I always get
the same ordering regardless of the compiler I used.


No, I think you're right; I'd been filtering dirEntries through takeExactly and 
it was generating an error using dmd.


That reminds me -- did you tweak the GDC wiki to add the info about patching the 
GCC sources?  I must get a working gdc-4.7 on my system.




GDC build [was: Re: Sort order of dirEntries]

2012-10-25 Thread Joseph Rushton Wakeling

On 10/25/2012 10:07 PM, H. S. Teoh wrote:

No guarantees that it will work, though. The GCC build system is a
fragile, sensitive animal.


Indeed ... having followed your instructions (on 64-bit Ubuntu 12.10) I found 
myself first faced with the cannot find crti.o I'd encountered before.


I fixed that by Alex Petersen's suggestion of symlinking 
/usr/lib/x86_64-linux-gnu/crt*.o to /usr/lib/crt*.o (which hopefully won't break 
anything) and the build proceeded on that basis, but finally fell over with 
another error, I think while trying to build gcov-dump (it's a bit hard to tell 
with such verbose compilation statements as GCC has):


--
d/d-gcc.o: In function `used_arg':
gcc.c:(.text+0xdf4): undefined reference to `fatal_error'
d/d-gcc.o: In function `compare_version_strings':
gcc.c:(.text+0xf4a): undefined reference to `fancy_abort'
gcc.c:(.text+0xf5e): undefined reference to `fancy_abort'
gcc.c:(.text+0xf6d): undefined reference to `fatal_error'
gcc.c:(.text+0xf81): undefined reference to `fancy_abort'
gcc.c:(.text+0xf90): undefined reference to `fatal_error'
d/d-gcc.o: In function `version_compare_spec_function':
gcc.c:(.text+0x1120): undefined reference to `fatal_error'
gcc.c:(.text+0x1238): undefined reference to `fatal_error'
gcc.c:(.text+0x124c): undefined reference to `fancy_abort'
gcc.c:(.text+0x1258): undefined reference to `fatal_error'
d/d-gcc.o: In function `compare_debug_auxbase_opt_spec_function':
gcc.c:(.text+0x143c): undefined reference to `fatal_error'
gcc.c:(.text+0x1448): undefined reference to `fatal_error'
gcc.c:(.text+0x1454): undefined reference to `fatal_error'
d/d-gcc.o: In function `xputenv':
gcc.c:(.text+0x1762): undefined reference to `fnotice'
d/d-gcc.o: In function `find_plugindir_spec_function':
gcc.c:(.text+0x2497): undefined reference to `fancy_abort'
d/d-gcc.o: In function `find_file_spec_function':
gcc.c:(.text+0x24bb): undefined reference to `fancy_abort'
d/d-gcc.o: In function `remove_outfile_spec_function':
gcc.c:(.text+0x2532): undefined reference to `fancy_abort'
d/d-gcc.o: In function `replace_outfile_spec_function':
gcc.c:(.text+0x25dd): undefined reference to `fancy_abort'
d/d-gcc.o: In function `getenv_spec_function':
gcc.c:(.text+0x2677): undefined reference to `fatal_error'
d/d-gcc.o: In function `process_command':
gcc.c:(.text+0x2c62): undefined reference to `common_handle_option'
gcc.c:(.text+0x2c71): undefined reference to `target_handle_option'
gcc.c:(.text+0x2dda): undefined reference to `read_cmdline_option'
gcc.c:(.text+0x2ffb): undefined reference to `warning'
gcc.c:(.text+0x3111): undefined reference to `warning'
gcc.c:(.text+0x322a): undefined reference to `fancy_abort'
d/d-gcc.o: In function `retry_ice':
gcc.c:(.text+0x381b): undefined reference to `fnotice'
gcc.c:(.text+0x3b32): undefined reference to `fnotice'
d/d-gcc.o: In function `add_sysrooted_prefix.constprop.20':
gcc.c:(.text+0x3d72): undefined reference to `fatal_error'
d/d-gcc.o: In function `init_spec.part.4':
gcc.c:(.text+0x4184): undefined reference to `fnotice'
d/d-gcc.o: In function `add_linker_option':
gcc.c:(.text+0x4326): undefined reference to `vec_heap_p_reserve'
d/d-gcc.o: In function `add_preprocessor_option':
gcc.c:(.text+0x4386): undefined reference to `vec_heap_p_reserve'
d/d-gcc.o: In function `add_assembler_option':
gcc.c:(.text+0x43e6): undefined reference to `vec_heap_p_reserve'
d/d-gcc.o: In function `driver_handle_option':
gcc.c:(.text+0x4cde): undefined reference to `fancy_abort'
gcc.c:(.text+0x4da9): undefined reference to `fancy_abort'
gcc.c:(.text+0x4dbd): undefined reference to `fancy_abort'
gcc.c:(.text+0x4dd1): undefined reference to `fancy_abort'
gcc.c:(.text+0x4de5): undefined reference to `fancy_abort'
d/d-gcc.o:gcc.c:(.text+0x4df9): more undefined references to `fancy_abort' 
follow
d/d-gcc.o: In function `driver_handle_option':
gcc.c:(.text+0x4e31): undefined reference to `fatal_error'
d/d-gcc.o: In function `store_arg':
gcc.c:(.text+0x4f8d): undefined reference to `vec_heap_p_reserve'
d/d-gcc.o: In function `create_at_file':
gcc.c:(.text+0x5214): undefined reference to `fatal_error'
gcc.c:(.text+0x5223): undefined reference to `fatal_error'
gcc.c:(.text+0x5232): undefined reference to `fatal_error'
d/d-gcc.o: In function `execute':
gcc.c:(.text+0x5666): undefined reference to `fatal_error'
gcc.c:(.text+0x591c): undefined reference to `vec_heap_p_reserve'
gcc.c:(.text+0x59b8): undefined reference to `vec_heap_p_reserve_exact'
gcc.c:(.text+0x5e36): undefined reference to `fnotice'
gcc.c:(.text+0x5f58): undefined reference to `fancy_abort'
gcc.c:(.text+0x5f62): undefined reference to `fatal_error'
gcc.c:(.text+0x5f8a): undefined reference to `fancy_abort'
gcc.c:(.text+0x5fc1): undefined reference to `fatal_error'
gcc.c:(.text+0x5fe4): undefined reference to `internal_error'
gcc.c:(.text+0x5fee): undefined reference to `fatal_error'
d/d-gcc.o: In function `do_spec_1':

Re: GDC build [was: Re: Sort order of dirEntries]

2012-10-25 Thread H. S. Teoh
On Thu, Oct 25, 2012 at 11:08:48PM +0200, Joseph Rushton Wakeling wrote:
 On 10/25/2012 10:07 PM, H. S. Teoh wrote:
 No guarantees that it will work, though. The GCC build system is a
 fragile, sensitive animal.
 
 Indeed ... having followed your instructions (on 64-bit Ubuntu
 12.10) I found myself first faced with the cannot find crti.o I'd
 encountered before.

Oh? Did you run the debian/rules patch command in the package source
directory? That was supposed to have fixed this issue, and potentially
the issue you're seeing below (Debian-based systems break several
assumptions that the GCC build system makese, so you really want to be
applying the Debian patches to increase your odds of the build
succeeding).


 I fixed that by Alex Petersen's suggestion of symlinking
 /usr/lib/x86_64-linux-gnu/crt*.o to /usr/lib/crt*.o (which hopefully
 won't break anything) and the build proceeded on that basis, but
 finally fell over with another error, I think while trying to build
 gcov-dump (it's a bit hard to tell with such verbose compilation
 statements as GCC has):

Hmm. Frankly, I have no idea what's going on here. :-( I myself am
facing an error where gdc git HEAD isn't building because Walter's .c
C++ files are getting compiled with gcc, and failing horribly 'cos it's
C++, not C. According to Iain, this isn't supposed to happen, but I
still have no idea why it's happening.

What parameters did you pass to configure? I wonder if you can turn off
some stuff that you don't need, that might avoid this problem. I know
that for me, I have to use --disable-multilib (at least), otherwise the
build will fail. I also have --disable-gomp and --disable-quadmath,
since neither are used by GDC. I'm not sure if they're related to your
issue though.


T

-- 
It is widely believed that reinventing the wheel is a waste of time; but I 
disagree: without wheel reinventers, we would be still be stuck with wooden 
horse-cart wheels.


Re: GDC build [was: Re: Sort order of dirEntries]

2012-10-25 Thread Joseph Rushton Wakeling

On 10/25/2012 11:22 PM, H. S. Teoh wrote:

Oh? Did you run the debian/rules patch command in the package source
directory? That was supposed to have fixed this issue, and potentially
the issue you're seeing below (Debian-based systems break several
assumptions that the GCC build system makese, so you really want to be
applying the Debian patches to increase your odds of the build
succeeding).


Yup.  Latest gdc-4.7 sources (which I believe include your patch), GCC 4.7.2 
sources from the Ubuntu 12.10 repositories, tweaked the debian/rules.patch file 
as instructed, ran the debian/rules clean and debian/rules patch functions and 
update-gcc.sh.


I don't see anything in rules.patch that would get the compiler looking for 
crtio.o in /usr/lib/x86_64-linux-gnu/ though.



What parameters did you pass to configure? I wonder if you can turn off
some stuff that you don't need, that might avoid this problem. I know
that for me, I have to use --disable-multilib (at least), otherwise the
build will fail. I also have --disable-gomp and --disable-quadmath,
since neither are used by GDC. I'm not sure if they're related to your
issue though.


Originally I tried with --enable-language=d --disable-multilib --enable-lto. 
I've since tried without the -lto option, and tried disabling all the parts that 
are not used by GDC (gomp, quadmath, etc.)  Same error. :-(


It's really very, very frustrating, especially when compared to how easy it is 
to build LDC from source.  Even more so because it gets in the way of being able 
to actually help and contribute to GDC.


Re: GDC build [was: Re: Sort order of dirEntries]

2012-10-25 Thread H. S. Teoh
On Fri, Oct 26, 2012 at 12:26:02AM +0200, Joseph Rushton Wakeling wrote:
 On 10/25/2012 11:22 PM, H. S. Teoh wrote:
[...]
 Yup.  Latest gdc-4.7 sources (which I believe include your patch),
 GCC 4.7.2 sources from the Ubuntu 12.10 repositories, tweaked the
 debian/rules.patch file as instructed, ran the debian/rules clean
 and debian/rules patch functions and update-gcc.sh.

Hmm. I don't know what to say, it worked for me. :-/  I wonder if
there's a difference between the Debian version of gcc-4.7.2 patches and
Ubuntu's version. I doubt it, but you never know. That might be
something worth looking into (you can add ftp.debian.org to
/etc/apt/sources.list if you want to experiment with fetching the gcc
sources from the Debian repository instead).

Another thing I can think of is, you may need to run 'apt-get build-dep
gcc-4.7.2' to install any -dev packages required by the build. That
could be what's wrong. Maybe.


 I don't see anything in rules.patch that would get the compiler
 looking for crtio.o in /usr/lib/x86_64-linux-gnu/ though.

The patches are in debian/patches/*. There's quite a lot of them; I
didn't even bother looking through them. I wonder, though, if the Ubuntu
sources don't have the multiarch patch? Try the upstream Debian package
and see if that helps.


 What parameters did you pass to configure? I wonder if you can turn
 off some stuff that you don't need, that might avoid this problem. I
 know that for me, I have to use --disable-multilib (at least),
 otherwise the build will fail. I also have --disable-gomp and
 --disable-quadmath, since neither are used by GDC. I'm not sure if
 they're related to your issue though.
 
 Originally I tried with --enable-language=d --disable-multilib
 --enable-lto. I've since tried without the -lto option, and tried
 disabling all the parts that are not used by GDC (gomp, quadmath,
 etc.)  Same error. :-(

:-( Well, try apt-get build-dep gcc-4.7.2 and maybe fetch the source
package from ftp.debian.org, and see if that helps. Beyond that, I'm
afraid I don't know much else. GCC build scripts are black magic to me,
of the blackest kind.


 It's really very, very frustrating, especially when compared to how
 easy it is to build LDC from source.  Even more so because it gets
 in the way of being able to actually help and contribute to GDC.

Yeah no kidding.

Building GCC is one of the most frustrating experiences I've ever had
with software compilation. There are just so many dependencies and
assumptions (some unstated, or perhaps just stated in obscure places
nobody knows where to look) about the build environment, system layout,
etc., that it's a veritable fortress of cards ready to come all crashing
down on you at the slightest wind. And often the error message is far
removed from the location of the real problem, and gives you no clue at
all as to what the real problem is. (That's why I said in another thread
in the other forum that the GCC build scripts need to be revamped.
Unfortunately, I doubt that will ever happen. :-/)


T

-- 
People walk. Computers run.


Re: GDC build [was: Re: Sort order of dirEntries]

2012-10-25 Thread Joseph Rushton Wakeling

On 10/26/2012 02:16 AM, H. S. Teoh wrote:

Another thing I can think of is, you may need to run 'apt-get build-dep
gcc-4.7.2' to install any -dev packages required by the build. That
could be what's wrong. Maybe.


Oh, good thought.

Well, I did that, and went with the following configure statement:


../gcc-4.7-4.7.2/src/configure --enable-languages=d --disable-multilib 
--disable-libgomp --disable-libmudflap --disable-libquadmath 
--disable-libquadmath-support --enable-checking=release



... as I realized I'd left off the --enable-checking flag in previous builds.

It now falls over in a different place again with the error:


../../gcc-4.7-4.7.2/src/gcc/graphite.c:50:19: fatal error: ppl_c.h: No such file 
or directory




The patches are in debian/patches/*. There's quite a lot of them; I
didn't even bother looking through them. I wonder, though, if the Ubuntu
sources don't have the multiarch patch? Try the upstream Debian package
and see if that helps.


The following are present: gcc-multiarch.diff, gcc-multiarch-linaro.diff, 
gcc-multilib64-multiarch.diff, libjava-multiarch.diff, gcc-multiarch-doc.diff, 
gcc-multiarch-trunk.diff, gcc-multilib64-multiarch-trunk.diff



:-( Well, try apt-get build-dep gcc-4.7.2 and maybe fetch the source
package from ftp.debian.org, and see if that helps. Beyond that, I'm
afraid I don't know much else. GCC build scripts are black magic to me,
of the blackest kind.


I'll give the Debian sources a go some time next week, maybe ...


Re: GDC build [was: Re: Sort order of dirEntries]

2012-10-25 Thread H. S. Teoh
On Fri, Oct 26, 2012 at 02:50:08AM +0200, Joseph Rushton Wakeling wrote:
 On 10/26/2012 02:16 AM, H. S. Teoh wrote:
 Another thing I can think of is, you may need to run 'apt-get
 build-dep gcc-4.7.2' to install any -dev packages required by the
 build. That could be what's wrong. Maybe.
 
 Oh, good thought.
 
 Well, I did that, and went with the following configure statement:
 
 
 ../gcc-4.7-4.7.2/src/configure --enable-languages=d
 --disable-multilib --disable-libgomp --disable-libmudflap
 --disable-libquadmath --disable-libquadmath-support
 --enable-checking=release
 
 
 ... as I realized I'd left off the --enable-checking flag in previous
 builds.

Hmm. Maybe try --enable-checking=yes? That's what I have. Though I'm not
sure if this has anything to do with it.


 It now falls over in a different place again with the error:
 
 
 ../../gcc-4.7-4.7.2/src/gcc/graphite.c:50:19: fatal error: ppl_c.h:
 No such file or directory
 

Hmm. Try apt-get install libppl0.11-dev, maybe? That's where that file
should be. AFAIK apt-get build-dep should've pulled that one in, but
just in case it didn't, this may help.


 The patches are in debian/patches/*. There's quite a lot of them; I
 didn't even bother looking through them. I wonder, though, if the
 Ubuntu sources don't have the multiarch patch? Try the upstream
 Debian package and see if that helps.
 
 The following are present: gcc-multiarch.diff,
 gcc-multiarch-linaro.diff, gcc-multilib64-multiarch.diff,
 libjava-multiarch.diff, gcc-multiarch-doc.diff,
 gcc-multiarch-trunk.diff, gcc-multilib64-multiarch-trunk.diff
[...]

OK, AFAIK this should be enough. But anyway, seems you've gotten a
little farther now, so maybe it was the apt-get build-dep that was
missing.

Try installing libppl0.11-dev (or if that exact version isn't there,
search for libppl*-dev in the Ubuntu archive) and see if that prods it
along a bit more.


T

-- 
Nearly all men can stand adversity, but if you want to test a man's character, 
give him power. -- Abraham Lincoln


Re: Sort order of dirEntries

2012-10-24 Thread H. S. Teoh
On Thu, Oct 25, 2012 at 02:15:06AM +0200, Joseph Rushton Wakeling wrote:
 Hello all,
 
 I've just been playing with dirEntries and by the looks of it, it
 returns these entries in arbitrary order.
 
 Is there a way to get it to sort the entries in alphabetical order,
 other than the obvious one of storing them in an array and sorting
 that?  (This is untenable because I'm talking about a lot of
 files...:-)
[...]

This may not be possible if the OS doesn't keep the entries in sorted
order (and from what I know, most OS's don't; it's only sorted upon
display). *Somebody* will have to do the sorting, whether it's the OS,
or the library or user code. The performance penalty will still be
incurred regardless.


T

-- 
Don't drink and derive. Alcohol and algebra don't mix.