[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Texmacs-dev] [Announce] nogencc-0.7
From: |
Joris van der Hoeven |
Subject: |
Re: [Texmacs-dev] [Announce] nogencc-0.7 |
Date: |
Mon, 6 May 2002 10:36:25 +0200 (MET DST) |
> What still does no work:
>
> I was unable to statically link the official distribution (either
> 1.0.0.1 or 1.0.0.3), so I cannot work at statically linking my version.
>
> The error message is:
> /home/david/Desktop/TeXmacs/TeXmacs-1.0.0.1-src/TeXmacs-1.0.0.1/lib/libbasic.a(misc.o):
>
> In function `eval_system(string)':
> misc.o(.text+0x8c68): the use of `tmpnam' is dangerous, better use
> `mkstemp'
> /usr/lib/libguile.a(dynl.o): In function `sysdep_dynl_link':
> dynl.o(.text+0x394): undefined reference to `lt_dlopenext'
> dynl.o(.text+0x3db): undefined reference to `lt_dlerror'
> /usr/lib/libguile.a(dynl.o): In function `sysdep_dynl_unlink':
> dynl.o(.text+0x432): undefined reference to `lt_dlclose'
> dynl.o(.text+0x475): undefined reference to `lt_dlerror'
> /usr/lib/libguile.a(dynl.o): In function `sysdep_dynl_func':
> dynl.o(.text+0x4a5): undefined reference to `lt_dlsym'
> dynl.o(.text+0x4e5): undefined reference to `lt_dlerror'
> /usr/lib/libguile.a(dynl.o): In function `sysdep_dynl_init':
> dynl.o(.text+0x50c): undefined reference to `lt_dlinit'
> collect2: ld returned 1 exit status
Maybe you should try compiling with another version of Guile.
Also, it may be necessary to link with some kind of dynamic
linking library which supports the missing symbols.
Finally, I recall you that the order of the linking flags
is very important; if you mixed that up, the compilation
is likely to break on many systems.
> I was unable to compile gcc-2.95.2, so I could not test compilation
> with that version.
>
> The error message is:
> /usr/local/src/gcc-2.95.2/objdir/gcc/xgcc
> -B/usr/local/src/gcc-2.95.2/objdir/gcc/
> -B/usr/local/gcc-2.95.2/i686-pc-linux-gnu/bin/ -c -g -O2 -fvtable-thunks
> -D_GNU_SOURCE -fno-implicit-templates -I. -I../../../libio -nostdinc++
> -D_IO_MTSAFE_IO ../../../libio/indstream.cc
> ../../../libio/indstream.cc: In method `struct streampos
> indirectbuf::seekoff(long long int, ios::seek_dir, int = 3)':
> ../../../libio/indstream.cc:82: `struct streampos' used where a `int' was
> expected
> ../../../libio/indstream.cc:85: `struct streampos' used where a `int' was
> expected
> ../../../libio/indstream.cc:87: `struct streampos' used where a `int' was
> expected
> ../../../libio/indstream.cc:89: conversion from `int' to non-scalar type
> `streampos' requested
> ../../../libio/indstream.cc: In method `struct streampos
> indirectbuf::seekpos(_G_fpos64_t, int = 3)':
> ../../../libio/indstream.cc:99: `struct streampos' used where a `int' was
> expected
> ../../../libio/indstream.cc:102: `struct streampos' used where a `int'
> was expected
> ../../../libio/indstream.cc:104: `struct streampos' used where a `int'
> was expected
> ../../../libio/indstream.cc:106: conversion from `int' to non-scalar type
> `streampos' requested
> make[1]: *** [indstream.o] Error 1
You might try to compile with another version of gcc...
If there are no other errors, then you may also patch the source code;
it seems just to be a conversion problem.
> Compilation benchmarks:
>
> The compiler used is gcc-2.95.3 (official).
>
> The mesure does not include the generation of support files, like
> dependence analysis, and first pass compilation to generate the .rpo
> files (.rpo are included in the distribution anyway).
>
> The reference compilation time was mesured with the MIXED target.
>
> The given time is the value of user time provided by the time command.
>
> dialect = -fno-exceptions -fno-rtti
> optim=none --> $(dialect)
> optim=medium --> -O2 $(dialect)
> optim=high --> -O3 -fexpensive-optimizations -malign-loops=2
> -malign-jumps=2 -malign-functions=2 $(dialect)
>
> version \ optim | none medium high
> ----------------------+-------------------------------
> TeXmacs-1.0.0.1 | 1m42.93s 7m30.58s 7m55.31s
> nogencc-0.7 SEPARATE | 2m25.21s 7m20.42s 7m25.97s
> nogencc-0.7 AGGREGATE | 1m14.39s 6m12.34s 6m38.16s
> SEPARATE -- AGGREGATE | 70.82s 68.08s 47.81s
>
> And delta relative to official version:
>
> version \ optim | none medium high
> ----------------------+--------------------------
> nogencc-0.7 SEPARATE | + 41 % - 2 % - 6 %
> nogencc-0.7 AGGREGATE | - 28 % - 17 % - 16 %
>
> So, the nogencc version is always faster to compile than the official
> version in AGGREGATE compilation. SEPARATE compilation introduces an
> overhead of about one minute.
OK, so we might switch to separate compilation later on
without a major loss. But I will also have to check this
with other compilers.