Bug#157416: preprocessor/8524: _Pragma within macros is improperly expanded

2002-11-11 Thread neil
Synopsis: _Pragma within macros is improperly expanded

Responsible-Changed-From-To: unassigned->neil
Responsible-Changed-By: neil
Responsible-Changed-When: Sun Nov 10 22:44:07 2002
Responsible-Changed-Why:
Mine.
State-Changed-From-To: open->analyzed
State-Changed-By: neil
State-Changed-When: Sun Nov 10 22:44:07 2002
State-Changed-Why:
Yah, I'm not entirely surprised; the code in question is not pretty.  I'll 
take another look.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8524




Bug#153965: c/8602: incorrect line numbers in warning messages when using inline functions

2002-11-16 Thread neil
Synopsis: incorrect line numbers in warning messages when using inline functions

State-Changed-From-To: open->analyzed
State-Changed-By: neil
State-Changed-When: Sat Nov 16 03:23:59 2002
State-Changed-Why:
Confirmed.  Change category to C as it clearly has nothing to do with 
preprocessor.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8602




Bug#157416: preprocessor/8524: _Pragma within macros is improperly expanded

2002-11-17 Thread neil
Synopsis: _Pragma within macros is improperly expanded

State-Changed-From-To: analyzed->open
State-Changed-By: neil
State-Changed-When: Sun Nov 17 14:07:28 2002
State-Changed-Why:
Patch in progress.  Let's nail this for good.  Other than a rewrite the 
only possible fix is a kludge, so let's keep our fingers crossed.

(GNATs insists I change state, consider it "analyzed").

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8524




Bug#157416: preprocessor/8524: _Pragma within macros is improperly expanded

2002-11-18 Thread neil
Synopsis: _Pragma within macros is improperly expanded

State-Changed-From-To: open->closed
State-Changed-By: neil
State-Changed-When: Mon Nov 18 12:51:59 2002
State-Changed-Why:
Fixed, I hope.  Applied in 3.3, will soon apply in 3.2.2.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8524




get me Rolex or Cartier or Breitling

2005-06-12 Thread Neil

Get the Finest Rolex Watch Replica !
  
We only sell premium watches. There's no battery in these replicas
just like the real ones since they charge themselves as you move. 
The second hand moves JUST like the real ones, too. 
These original watches sell in stores for thousands of dollars. 
We sell them for much less. 
  
- Replicated to the Smallest Detail
- 98% Perfectly Accurate Markings 
- Signature Green Sticker w/ Serial Number on Watch Back
- Magnified Quickset Date
- Includes all Proper Markings

http://www.chooseyourwatch4u.com/














you stereography me transfinite me  [2


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: bootstrap/2987

2001-06-07 Thread neil
Synopsis: gcc 3.0 0526 fails to build on mips

State-Changed-From-To: open->closed
State-Changed-By: neil
State-Changed-When: Wed Jun  6 05:32:48 2001
State-Changed-Why:
I believe this has been fixed; we have since had successful
builds, e.g.

http://gcc.gnu.org/ml/gcc-testresults/2001-06/msg00128.html

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=2987&database=gcc




Re: preprocessor/7558: preprocessor option -MM has change semantic

2002-08-10 Thread Neil Booth
[EMAIL PROTECTED] wrote:-

> >Description:
>   In gcc 3.1, -MM prints dependencies even to files included with
>   angle brackets (), if those are found through -I options.
>   This behaviour is unintuitive and a change from earlier versions.

Why are you using <> brackets?  Why is #include "foo.h" not good enough?

Neil.




Re: preprocessor/7558: preprocessor option -MM has change semantic

2002-08-11 Thread Neil Booth
Martin,

If it's a system header, why are you lying to the compiler?

Maybe a real-life example and not "a.h" would help.

Neil.




Re: preprocessor/7558: preprocessor option -MM has change semantic

2002-08-11 Thread Neil Booth
Martin v. Loewis wrote:-

> Neil Booth <[EMAIL PROTECTED]> writes:
> 
> > If it's a system header, why are you lying to the compiler?
> 
> I'm not lying, I use 

You've not told the compiler it's a system header, so it doesn't think
it is.  Let me see what Zack thinks.

Neil.




Bug#157416: _Pragma() from macros - bug

2002-08-30 Thread Neil Booth
Zack Weinberg wrote:-

> This was reported to the Debian bug-tracking system:
> 
> $ cat foo.c
> _Pragma("foo"); int y;
> #define FOO _Pragma("foo"); int x;
> FOO
> [EMAIL PROTECTED]:~$ cpp-3.2 foo.c
> # 1 "foo.c"
> # 1 ""
> # 1 ""
> # 1 "foo.c"
> 
> # 1 "foo.c"
> #pragma foo 
> # 1 "foo.c"
>  ; int y;
> 
> 
> # 3 "foo.c"
> #pragma ; int x;foo 
> 
> > The first line is expanded correctly; the third is not (rendering
> > _Pragma almost completely useless).
> 
> Do you have time to look into this, Neil?

I'll try to have a look this weekend.

Neil.




Bug#157416: _Pragma() from macros - bug

2002-09-03 Thread Neil Booth
Zack Weinberg wrote:-

> This was reported to the Debian bug-tracking system:
> 
> $ cat foo.c
> _Pragma("foo"); int y;
> #define FOO _Pragma("foo"); int x;
> FOO
> [EMAIL PROTECTED]:~$ cpp-3.2 foo.c
> # 1 "foo.c"
> # 1 ""
> # 1 ""
> # 1 "foo.c"
> 
> # 1 "foo.c"
> #pragma foo 
> # 1 "foo.c"
>  ; int y;
> 
> 
> # 3 "foo.c"
> #pragma ; int x;foo 
> 
> > The first line is expanded correctly; the third is not (rendering
> > _Pragma almost completely useless).
> 
> Do you have time to look into this, Neil?

Fixed with a nasty kludge thus.

We really should be leaving _Pragma as-is in preprocessed output IMO;
(but processing it for pragmas handled by CPP itself) then this whole
issue goes away, and so does the hoops I jump through to retain
correct token line numbering.  That's for 3.4.

Bootstrapped and regtested; I'm going to put this in.

Neil.

* cpphash.h (FIRST, LAST, CUR, RLIMIT): Fix definitions.
* cpplib.c (destringize_and_run): Kludge around getting
tokens from in-progress macros.
(_cpp_do__Pragma): Simplify.
testsuite:
* gcc.dg/cpp/_Pragma4.c: New test.

Index: cpphash.h
===
RCS file: /cvs/gcc/gcc/gcc/cpphash.h,v
retrieving revision 1.170
diff -u -p -r1.170 cpphash.h
--- cpphash.h   12 Aug 2002 22:44:29 -  1.170
+++ cpphash.h   3 Sep 2002 21:51:47 -
@@ -166,10 +166,10 @@ struct tokenrun
 };
 
 /* Accessor macros for struct cpp_context.  */
-#define FIRST(c) (c->u.iso.first)
-#define LAST(c) (c->u.iso.last)
-#define CUR(c) (c->u.trad.cur)
-#define RLIMIT(c) (c->u.trad.rlimit)
+#define FIRST(c) ((c)->u.iso.first)
+#define LAST(c) ((c)->u.iso.last)
+#define CUR(c) ((c)->u.trad.cur)
+#define RLIMIT(c) ((c)->u.trad.rlimit)
 
 typedef struct cpp_context cpp_context;
 struct cpp_context
Index: cpplib.c
===
RCS file: /cvs/gcc/gcc/gcc/cpplib.c,v
retrieving revision 1.321
diff -u -p -r1.321 cpplib.c
--- cpplib.c14 Aug 2002 20:17:54 -  1.321
+++ cpplib.c3 Sep 2002 21:51:47 -
@@ -1277,6 +1277,9 @@ destringize_and_run (pfile, in)
 {
   const unsigned char *src, *limit;
   char *dest, *result;
+  cpp_context saved_context;
+  cpp_context *saved_cur_context;
+  unsigned int saved_line;
 
   dest = result = alloca (in->len + 1);
   for (src = in->text, limit = src + in->len; src < limit;)
@@ -1288,7 +1291,40 @@ destringize_and_run (pfile, in)
 }
   *dest = '\0';
 
+  /* FIXME.  All this saving is a horrible kludge to handle the case
+ when we're in a macro expansion.
+
+ A better strategy it to not convert _Pragma to #pragma if doing
+ preprocessed output, but to just pass it through as-is, unless it
+ is a CPP pragma in which case is should be processed normally.
+ When compiling the preprocessed output the _Pragma should be
+ handled.  This will be become necessary when we move to
+ line-at-a-time lexing since we will be macro-expanding the line
+ before outputting / compiling it.  */
+  saved_line = pfile->line;
+  saved_context = pfile->base_context;
+  saved_cur_context = pfile->context;
+  pfile->context = &pfile->base_context;
   run_directive (pfile, T_PRAGMA, result, dest - result);
+  pfile->context = saved_cur_context;
+  pfile->base_context = saved_context;
+  pfile->line = saved_line;
+
+  /* See above comment.  For the moment, we'd like
+
+ token1 _Pragma ("foo") token2
+
+ to be output as
+
+   token1
+   # 7 "file.c"
+   #pragma foo
+   # 7 "file.c"
+  token2
+
+  Getting the line markers is a little tricky.  */
+  if (pfile->cb.line_change)
+(*pfile->cb.line_change) (pfile, pfile->cur_token, false);
 }
 
 /* Handle the _Pragma operator.  */
@@ -1298,26 +1334,11 @@ _cpp_do__Pragma (pfile)
 {
   const cpp_token *string = get__Pragma_string (pfile);
 
-  if (!string)
+  if (string)
+destringize_and_run (pfile, &string->val.str);
+  else
 cpp_error (pfile, DL_ERROR,
   "_Pragma takes a parenthesized string literal");
-  else
-{
-  /* Ideally, we'd like
-   token1 _Pragma ("foo") token2
-to be output as
-   token1
-   # 7 "file.c"
-   #pragma foo
-   # 7 "file.c"
-  token2
-Getting these correct line markers is a little tricky.  */
-
-  unsigned int orig_line = pfile->line;
-  destringize_and_run (pfile, &string->v

Bug#157416: _Pragma() from macros - bug

2002-09-06 Thread Neil Booth
Steve Ellcey wrote:-

> 
> I am confused by the new test gcc.dg/cpp/_Pragma4.c that was added by
> this patch and wonder if I am missing something or if there is a typo in
> the test.
> 
> I believe the test is searching for the string '#pragma bat' (bat with a
> t) to see if the tests succeeded, but how would that appear in the
> output?  Shouldn't it be searching for '#pragma bar' (bar with an r)?
> Or am I just really confused?  The test is currently failing for me.

Indeed, I wonder how I hadn't noticed.  I've fixed the typo.

I've a nasty feeling the fix I gave doesn't work in all cases anyway;
a proper fix might have to wait for 3.4.

Neil.




Re: preprocessor/8524: _Pragma within macros is improperly expanded

2002-11-18 Thread Neil Booth
I think this fixes it for good.  I'm applying this to 3.3, and 3.2.2
when it arrives.

Neil.

PR preprocessor/8524
* cpplib.c (run_directive): Remove previous kludge to _Pragma.
Add a new one in its place, which hopefully works.
(skip_rest_of_line): Change test for bottom-of-context-stack.
testsuite:
* gcc.dg/cpp/_Pragma5.c: New test.

Index: cpplib.c
===
RCS file: /cvs/gcc/gcc/gcc/cpplib.c,v
retrieving revision 1.324
diff -u -p -r1.324 cpplib.c
--- cpplib.c22 Sep 2002 02:03:17 -  1.324
+++ cpplib.c17 Nov 2002 22:11:21 -
@@ -207,7 +207,7 @@ skip_rest_of_line (pfile)
  cpp_reader *pfile;
 {
   /* Discard all stacked contexts.  */
-  while (pfile->context != &pfile->base_context)
+  while (pfile->context->prev)
 _cpp_pop_context (pfile);
 
   /* Sweep up all tokens remaining on the line.  */
@@ -1277,9 +1277,6 @@ destringize_and_run (pfile, in)
 {
   const unsigned char *src, *limit;
   char *dest, *result;
-  cpp_context saved_context;
-  cpp_context *saved_cur_context;
-  unsigned int saved_line;
 
   dest = result = alloca (in->len + 1);
   for (src = in->text, limit = src + in->len; src < limit;)
@@ -1291,24 +1288,29 @@ destringize_and_run (pfile, in)
 }
   *dest = '\0';
 
-  /* FIXME.  All this saving is a horrible kludge to handle the case
- when we're in a macro expansion.
-
- A better strategy it to not convert _Pragma to #pragma if doing
- preprocessed output, but to just pass it through as-is, unless it
- is a CPP pragma in which case is should be processed normally.
- When compiling the preprocessed output the _Pragma should be
- handled.  This will be become necessary when we move to
- line-at-a-time lexing since we will be macro-expanding the line
- before outputting / compiling it.  */
-  saved_line = pfile->line;
-  saved_context = pfile->base_context;
-  saved_cur_context = pfile->context;
-  pfile->context = &pfile->base_context;
-  run_directive (pfile, T_PRAGMA, result, dest - result);
-  pfile->context = saved_cur_context;
-  pfile->base_context = saved_context;
-  pfile->line = saved_line;
+  /* Ugh; an awful kludge.  We are really not set up to be lexing
+ tokens when in the middle of a macro expansion.  Use a new
+ context to force cpp_get_token to lex, and so skip_rest_of_line
+ doesn't go beyond the end of the text.  Also, remember the
+ current lexing position so we can return to it later.
+
+ Something like line-at-a-time lexing should remove the need for
+ this.  */
+  {
+cpp_context *saved_context = pfile->context;
+cpp_token *saved_cur_token = pfile->cur_token;
+tokenrun *saved_cur_run = pfile->cur_run;
+
+pfile->context = xnew (cpp_context);
+pfile->context->macro = 0;
+pfile->context->prev = 0;
+run_directive (pfile, T_PRAGMA, result, dest - result);
+free (pfile->context);
+pfile->context = saved_context;
+pfile->cur_token = saved_cur_token;
+pfile->cur_run = saved_cur_run;
+pfile->line--;
+  }
 
   /* See above comment.  For the moment, we'd like
 




Re: preprocessor/8524: _Pragma within macros is improperly expanded

2002-11-18 Thread Neil Booth
Neil Booth wrote:-

> I think this fixes it for good.  I'm applying this to 3.3, and 3.2.2
> when it arrives.
> 
> Neil.
> 
>   PR preprocessor/8524
>   * cpplib.c (run_directive): Remove previous kludge to _Pragma.
>   Add a new one in its place, which hopefully works.
>   (skip_rest_of_line): Change test for bottom-of-context-stack.
> testsuite:
>   * gcc.dg/cpp/_Pragma5.c: New test.

Oops, the test got lost waiting for CVS.

Neil.

Index: testsuite/gcc.dg/cpp/_Pragma5.c
===
RCS file: testsuite/gcc.dg/cpp/_Pragma5.c
diff -N testsuite/gcc.dg/cpp/_Pragma5.c
--- /dev/null   1 Jan 1970 00:00:00 -
+++ testsuite/gcc.dg/cpp/_Pragma5.c 18 Nov 2002 20:40:43 -
@@ -0,0 +1,14 @@
+/* { dg-do preprocess } */
+
+/* Based on Debian GNATS PR 8524.  17 Nov 2002.  */
+
+#define ALPHA(A) alpha_ ## A
+#define BETA(B) beta_ ## B
+#define GAMMA(C) _Pragma("moose") ALPHA(C) BETA(C)
+GAMMA(baz);
+
+/*
+   { dg-final { if ![file exists _Pragma5.i] { return }   } }
+   { dg-final { if { [grep _Pragma5.i "alpha_baz beta_baz;"] != "" } { return 
}  } }
+   { dg-final { fail "_Pragma5.c: _Pragma in macro"   } }
+*/




Re: c/9762: Address of 'char' is incorrect.

2003-02-19 Thread Neil Booth
[EMAIL PROTECTED] wrote:-

>   In the example below, '&a' is the address of a local copy of 'a' not of 
> 'a'.
>   if the type of 'a' is changed to int, it works as expected.

Works as who expected?  Where is the bug?  Please quote which part of
the C standard is violated.  You got an address, why are you unhappy?

Neil.

> #define TA char
> #define TB int
> #define TC int
> 
> void foobar(TA a, TB b, TC c);
> 
> int main()
> {
>   foobar(1,2,3);
>   return 0;
> }
> 
> void foobar(TA a, TB b, TC c)
> {
>   printf("a == %i  claims %x\n", a, &a);
>   printf("a == %i  really %x\n", (&b)[-1], (&b)-1);
>   printf("b == %i  %x\n", b, &b);
>   printf("c == %i  %x\n", c, &c);
> }




Bug#447381: gcc-4.2: please support the -nodocs build option

2007-10-20 Thread Neil Williams
Package: gcc-4.2
Version: 4.2.2-3
Severity: wishlist

gcc has a complex debian build layout and it isn't straightforward to
disable the generation of the various -doc packages when preparing test
builds or (in my case) cross builds. It would save a lot of build time
and upload time if gcc could support the -nodocs option to prevent the
creation of all -doc packages built from the gcc source.

Each method that I try to disable the various -doc packages fails to
remove them all so it would be really useful if this could be supported
within the package.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22-2-amd64 (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages gcc-4.2 depends on:
ii  binutils  2.18-1 The GNU assembler, linker and bina
ii  cpp-4.2   4.2.2-3The GNU C preprocessor
ii  gcc-4.2-base  4.2.2-3The GNU Compiler Collection (base 
ii  libc6 2.6.1-6GNU C Library: Shared libraries
ii  libgcc1   1:4.2.2-3  GCC support library
ii  libgomp1  4.2.2-3GCC OpenMP (GOMP) support library

Versions of packages gcc-4.2 recommends:
ii  libc6-dev 2.6.1-6GNU C Library: Development Librari

-- no debconf information



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Bug#453267: tested patch

2007-12-08 Thread Neil Williams
Raphael Hertzog wrote:
> On Wed, 05 Dec 2007, Neil Williams wrote:
>> My first patch did exactly that - and failed on building a cross
>> compiler. gcc needs dpkg-shlibdeps to take notice of $ARCH in the
>> preparation of libgcc1-$arch-cross and other libraries used in the
>> complete toolchain. It needs (and sets) DEB_TARGET_GNU_TYPE !=
>> DEB_BUILD_GNU_TYPE at other stages of the build.
> 
> If that's the case, I'd like to know if this is deliberate and really
> required... can't the gcc package be consistent and always have both
> DEB_TARGET_GNU_TYPE and DEB_BUILD_GNU_TYPE properly set ?

Even if gcc changes that behaviour in 4.2 (or 4.3), lots of people still
need to be able to build cross compilers from older versions of gcc,
especially 4.1 and some even need 3.3 or 3.4.

Emdebian still hosts 4.1 and 3.4 toolchains:
http://www.emdebian.org/toolchains/search.php?package=gcc-3.4-arm-linux-gnu

It's not sensible to say that these cannot be built in the future
without writing a whole new diversion for dpkg-shlibdeps. Emdebian and
lots of other people doing cross building need backwards compatibility here.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: OpenPGP digital signature


Re: Bug#453267: tested patch

2007-12-09 Thread Neil Williams
Guillem Jover wrote:
> Hi,
> 
> [ I don't have a real opinion yet on the initial patch and this
>   changes proposed, will try to get to this on Sunday. ]

OK, thanks, Guillem. I'd like to get this resolved asap.

> On Sat, 2007-12-08 at 19:01:14 +, Neil Williams wrote:
>> Raphael Hertzog wrote:
>>> On Wed, 05 Dec 2007, Neil Williams wrote:
>>>> My first patch did exactly that - and failed on building a cross
>>>> compiler. gcc needs dpkg-shlibdeps to take notice of $ARCH in the
>>>> preparation of libgcc1-$arch-cross and other libraries used in the
>>>> complete toolchain. It needs (and sets) DEB_TARGET_GNU_TYPE !=
>>>> DEB_BUILD_GNU_TYPE at other stages of the build.
>>> If that's the case, I'd like to know if this is deliberate and really
>>> required... can't the gcc package be consistent and always have both
>>> DEB_TARGET_GNU_TYPE and DEB_BUILD_GNU_TYPE properly set ?
> 
>> Even if gcc changes that behaviour in 4.2 (or 4.3), lots of people still
>> need to be able to build cross compilers from older versions of gcc,
>> especially 4.1 and some even need 3.3 or 3.4.
> 
> Why can't 4.1 and 3.4 be "fixed" (if that's really needed) as well?
> 3.3 might be a problem, but even then you have to build them locally
> to support cross-compiling, why can't they be patched locally as well?

Local patches are *hell* to maintain - that is why I need to remove the
dpkg-cross diversions in the first place. We had local patches for
years, we've got passed that stage (thankfully) and desperately need
usable cross building support *within* Debian and stop this crazy "patch
upon patch upon diversion" approach.

Emdebian cannot build, patch or test every permutation of toolchain that
people need so this isn't about "us" patching locally, it is about
lowering the barrier to cross building on Debian by not forcing every
user to patch locally. This is why we are at the current impasse - too
many permutations.

Why propose changing every version of gcc (a process that could take
extreme amounts of time to test, implement and get into testing) and
then make it impossible to build cross compilers in Etch? Are we looking
at backports as well?? Who is going to do all that work? (Not me, before
anyone asks.)

This is a problem within dpkg, not actually within gcc. It makes far
more sense to change one line in one script than to change every version
of gcc.

dpkg-shlibdeps is (and has always been) broken with regard to building
cross compilers or cross built packages. Various solutions have been
created due to this long, long breakage and things are working nicely,
all the way back to gcc-3.3 and Etch (possibly earlier). Now that we
finally have a chance to fix dpkg-shlibdeps, why must all the previous
work be undone? For the sake of one environment variable?

This bug is about *removing* the dpkg-cross diversions, not *rewriting*
them - changing every gcc package is simply not workable IMHO and the
only real alternative to dpkg-shlibdeps supporting $ARCH is for me to
write a new diversion of dpkg-shlibdeps that *does* check the value of
$ARCH and forces the value of LD_LIBRARY_PATH when building a cross
compiler. That would just be a hack so please, can we just check $ARCH
in dpkg-shlibdeps?


-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: OpenPGP digital signature


Re: Bug#453267: tested patch

2007-12-09 Thread Neil Williams
Raphael Hertzog wrote:
> On Sun, 09 Dec 2007, Neil Williams wrote:
>> Emdebian cannot build, patch or test every permutation of toolchain that
>> people need so this isn't about "us" patching locally, it is about
>> lowering the barrier to cross building on Debian by not forcing every
>> user to patch locally. This is why we are at the current impasse - too
>> many permutations.
> 
> Emdebian provides ready to use cross compiler. You can also provides
> ready-to-use source packages for building other cross-compilers that are
> not yet provided.

? You make it sound as trivial as providing a web page.

Emdebian provides a small selection of binary toolchains containing
selected cross compilers. Extending that range is a truly massive
undertaking that nobody has the time to do. There are no usable
toolchain-source packages anymore - unmaintainable - we can provide
simple scripts that can assist in building a variant toolchain but we do
not provide ready-to-use source packages for building cross compilers.

The major reason why this is so much work is because the necessary
changes have not been incorporated into dpkg and we end up having to
patch a patch of a diversion of a patch.

Emdebian has quite a good relationship with the gcc maintainers and our
patches are generally welcome but that does not diminish the amount of
time involved in making a tested patch in the first place. Emdebian only
has enough developer time to derive patches for the latest versions of
gcc and even then it can be difficult to keep up with gcc releases. We
look forward to the stability of the pre-Lenny freeze because we know
that we can catch up and get a stable set of toolchains for unstable and
testing, all thoroughly tested and fixed. Then as soon as Lenny comes
out, we'll be swamped by gcc changes again. (We, in this case, equals
Hector Oron, myself and Wookey - gcc has a much larger team just for
itself.)

>> Why propose changing every version of gcc (a process that could take
>> extreme amounts of time to test, implement and get into testing) and
>> then make it impossible to build cross compilers in Etch? Are we looking
>> at backports as well?? Who is going to do all that work? (Not me, before
>> anyone asks.)
> 
> ARCH is a very generic environment variable that might be set for some
> other reasons (I use it for example in debian-cd) and I don't like to
> change the behaviour of dpkg-shlibdeps just because it's set. IMO,
> there should be a single check to activate cross-building support

cross building != building a cross compiler, as I've said many times.

A single check for cross building is already in place -
DEB_BUILD_GNU_TYPE != DEB_HOST_GNU_TYPE

I created a patch for that in gcc for reverse cross support, it is
included in gcc-4.2.

A mass bug filing is already under way to implement this single check
for cross building support across Debian. The patch to dpkg-shlibdeps
contains a part of that support.

Cross building gcc is NOT the problem. gcc now cross builds just like
any other package in Debian. If reverse cross support in Debian goes
wrong, I'll fix it. I've no problem with that.

Building a cross compiler is a completely separate task and one that has
only become a problem *after* changes in dpkg made the dpkg-cross
diversions impractical.

> and gcc's crossbuild should provide the right variables.

It does, thanks to the reverse cross support in gcc-4.2. Thankfully, we
don't need reverse cross support in 4.1 or earlier. (Well, it would be
nice if it could happen but then nobody has the time to do it so ...)

> I'm ok with a
> supplementary specific check for building of a cross-compiler, but not
> with a generic check like testing the ARCH environment variable.

OK, I have a solution for that - replace $ARCH with $GCC_TARGET.

I've tested with this change to the patch for scripts/Dpkg/Shlibs.pm

# GCC_TARGET for cross compiler builds
my $crossprefix = Dpkg::Arch::debarch_to_gnutriplet($ENV{GCC_TARGET}) if
($ENV{GCC_TARGET});
...

I went for ARCH before because, in the context of building a cross
compiler, ARCH is only set at certain times. GCC_TARGET is set at the
beginning and is present throughout the build. This means that the
patched dpkg-shlibdeps behaves much more like the original diversion
from dpkg-cross - it effectively extends the list of directories
searched by dpkg-shlibdeps to include the ${crossprefix} ones for every
call throughout the entire build. It may slow things down a little bit
but building a cross compiler isn't exactly quick anyway. It is far more
important that the build completes than shaving a few more seconds off
the build time.

> Furthermore, all the cross-building support in gcc has been contributed
> by various Emdebian people (according to doko), so it looks like Emdebian
> is also able to f

Re: Bug#453267: tested patch

2007-12-09 Thread Neil Williams
Raphael Hertzog wrote:
> On Sun, 09 Dec 2007, Neil Williams wrote:
>>> I'm ok with a
>>> supplementary specific check for building of a cross-compiler, but not
>>> with a generic check like testing the ARCH environment variable.
>> OK, I have a solution for that - replace $ARCH with $GCC_TARGET.
>>
>> I've tested with this change to the patch for scripts/Dpkg/Shlibs.pm
>>
>> # GCC_TARGET for cross compiler builds
>> my $crossprefix = Dpkg::Arch::debarch_to_gnutriplet($ENV{GCC_TARGET}) if
>> ($ENV{GCC_TARGET});
>> ...
>>
>> I went for ARCH before because, in the context of building a cross
>> compiler, ARCH is only set at certain times. GCC_TARGET is set at the
>> beginning and is present throughout the build. 
> 
> If I understand you correctly, we can check for GCC_TARGET only and we
> don't need to check DEB_TARGET_GNU_TYPE != DEB_BUILD_GNU_TYPE.

What's the obsession with cutting components out of the patch?? I'm
confused.

dpkg-shlibdeps should at least *support* the "right" way of doing
things, even if the packages currently do not use that. At least it
supports a migration route away from GCC_TARGET for future releases of
gcc. GCC_TARGET is a hack, yes, but we need it around for older
compilers that simply aren't going to get fixed. It would be nice to
provide a migration path to do it TheRightWay(TM) eventually because
that only means changing the latest version of gcc (probably 4.3) and we
can do that in the Lenny freeze when everything else gets easier too. I
don't want to have to go through all this again. GCC_TARGET is likely to
be around until gcc-4.3 gets into oldstable but that's a small price to
pay, IMHO. (It's been around for as long as dpkg-cross which is a decade
so a bit longer isn't going to hurt.)

> Is that correct and does that work ?

I don't believe it is correct but it happens to work - for now.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: OpenPGP digital signature


Bug#458745: arm-only miscompilation of alloca code

2008-01-03 Thread Neil Williams
On Thu, 2008-01-03 at 17:44 -0500, Camm Maguire wrote:
> Greetings!
> 
> Martin Michlmayr <[EMAIL PROTECTED]> writes:
> 
> > * Camm Maguire <[EMAIL PROTECTED]> [2008-01-02 16:55]:
> > > Is EABI the old arm, or the new?  Couldn't this make a difference?
> > 
> > I can reproduce the problem with the old ABI (i.e. the current port in
> > Debian).  I'll open a bug report with GCC.
> 
> Thank you!
> 
> Are we going to have two arm ports, or is the old one going away for
> lenny? 
> 

There are a lot of devices that need support from the existing Debian
arm port as well as newer devices that need the new ABI. There is a
possible method for combining the two but both will be needed - and
probably for some time after Lenny. Contact debian-arm for more info.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: This is a digitally signed message part


Bug#485878: g++-3.4 no longer in testing

2008-06-11 Thread Neil Mayhew
Package: g++-3.4
Version: 3.4.6-6
Severity: important


g++-3.4 has recently disappeared from testing (although gcc-3.4 is still
there). *Please don't do this!* I rely on my Debian testing system for
hosting application development that needs to work on all kinds of other
platforms, many of which do not run gcc-4 yet. Although I do the initial
work in the latest g++-4, I also want to be able to build with every
flavour of g++-3, and even with g++-2.95 if possible. I will eventually
build on the target platform, of course, but it's great to be able to
check for compiler and library compatibility on Linux first, typically
using a tinderbox arrangement.

I could of course build my own g++ from source, or add the etch
repository, but this doesn't seem like the right way to solve the
problem.

I've noticed the same problem with other packages (eg nVidia drivers)
where older versions of packages are taken out of sid before they are
able to go into testing (eg because they depend on an xorg version that
isn't in testing yet). As a result, there was NO usable nvidia package in
testing for a long time (and may be still: I don't know, because I
switched to ATI hardware in frustration).

Sometimes it feels like testing is the poor relation in the Debian
world, and so it's not so surprising that many people have "defected" to
Ubuntu. Debian testing works well for someone like myself, who wants a
reasonably stable application development platform (ie not sid) but
needs access to relatively up-to-date libraries (eg GTK).

Sorry for the rant, but hopefully you now see where I am coming from.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (900, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.24-1-686 (SMP w/2 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#485878: g++-3.4 no longer in testing

2008-06-11 Thread Neil Mayhew

On 6/11/08 6:27 PM, Matthias Klose wrote:
IMO our primary focus is the distribution, which doesn't require 
g++-3.4 for building packages;


The provision of packages is so that people who need the software can 
use it. For example, the reason Debian contains apache2 is so that 
people can run a web server. Surely the reason g++ is in the distro is 
so that people who need to do C++ development have a compiler available 
to them. To say that g++ is only there for the benefit of the system 
itself seems unreasonable. Would you say the same of fortran, ada, 
pascal or haskell compilers?



We cannot provide you with a repository of old compiler versions.


I guess there are limits, but would it really cost you much at all to 
keep the g++-3 series in the distro for a while longer?


Also, it doesn't seem reasonable to throw out g++3.4 when gcc-3.4 is 
still there. I guess your answer is that there are still packages that 
need gcc-3.4 and none that need g++-3.4, but I would have thought it 
made sense to keep the two together.


Sometimes it feels like testing is the poor relation in the Debian 
world, and so it's not so surprising that many people have "defected" 
to Ubuntu. Debian testing works well for someone like myself, who 
wants a reasonably stable application development platform (ie not 
sid) but needs access to relatively up-to-date libraries (eg GTK).


I don't see the relation to Ubuntu; these changes will be merged into 
the current Ubuntu development release with the next merge. There's no 
special handling unless the MOTU developers decide on it.


FYI, g++-3.3 and -3.4 are both in Intrepid, and also in Hardy which is 
roughly equivalent to where lenny is at right now.


I guess this is not the place to have a philosophical debate, but the 
point I am making is that Debian testing is often broken for practical 
purposes, and the developers don't really seem to care. The Debian 
developers put their effort into sid or unstable, and don't seem to care 
much about testing except as a holding place on the way to stable. 
However, for a great many desktop users, stable is too old and sid is 
too new. If testing was looked after properly, I think it would suit a 
lot of people very well. However, for a system that's actually usable 
people seem to be much better off with Ubuntu. I really want to stay 
with Debian, but I'm not sure how much longer I'm going to have the 
patience for it.


Taking the g++-3 series out of testing seems to me to be another example 
of a lack of interest in the practical usefulness of the testing distro. 
If testing is to serve its purpose, which is to give packages more 
extensive testing, it needs to be used by a good number of people. 
However, people are going to use it if it doesn't serve any practical needs.


My comments extend to the whole distro, not just g++. I am thinking of 
other packages like MonoDevelop, which was completely absent from 
testing for a long time, although it was right there in Ubuntu. When I 
asked about it, the maintainer just talked about backporting it into 
stable, even though I'd already explained that stable wasn't appropriate 
for me.


Your statement about "primary focus" seems to suggest that the needs of 
people who actually want to use the software on the system aren't as 
important as the needs of the people who build it. If the majority of 
Debian developers think that way, Debian is doomed as a distro that 
ordinary people want to use.


Again, I'm sorry to be so off-topic. I'm mostly trying to justify my 
request for g++-3.4, although if there is a place where I could 
legitimately discuss my concerns about Debian testing in general, I'd be 
glad if you could point me to it.


--Neil



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#518754: gcc-snapshot: gcc-..-base postinst needs additional error prevention

2009-03-08 Thread Neil Williams
Package: gcc-snapshot
Version: 20090224-1
Severity: normal

This issue affects Emdebian Grip in gcc-4.3 but I'm filing it here because Grip 
has
a workaround that is OK for 4.3 and I'm trying to fix the problem before 4.4 
arrives.
Please let me know if I did that wrong.

The -base postinst script does check if a copyright file already exists but 
then does not
check that .copyright also exists.

Emdebian Grip has specialised handling of ./usr/share/doc/ to remove 
documentation and
compress all copyright files to save space. Therefore, the postinst fails 
because
..copyright does not exist, ./copyright.gz does instead. (changelog.Debian.gz 
is also
removed, along with everything else in ./usr/share/doc/$package/). Emdebian 
currently
has an adapted Policy for such changes with a hope to include suitable 
exceptions at
some point in the future.

Emdebian Grip does not recompile packages, it is binary-compatible with Debian 
so that
users can choose to install the equivalent Debian package if appropriate, so 
the underlying
functionality needs to be retained, even if the Grip package lacks the data 
files.

(Cross-building is used for Emdebian Crush, a smaller variant that is not 
binary-compatible
with Debian or Grip.)

It would be much appreciated if the postinst could check for .copyright and do 
nothing
if it does not exist.

Something like:

#! /bin/sh -e

case "$1" in
configure)
# see #355439, packaging error in 4.0.2-9*
docdir=/usr/share/doc/g...@bv@-base
if [ ! -f $docdir/copyright ]; then
+   if [ -f $docdir/.copyright ]; then
ln $docdir/.copyright $docdir/copyright
+   fi
fi
if [ ! -f $docdir/changelog.Debian.gz ]; then
+   if [ -f $docdir/.changelog.Debian.gz ]; then
ln $docdir/.changelog.Debian.gz $docdir/changelog.Debian.gz
+   fi
fi
esac

?


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to en_GB.UTF-8)
Shell: /bin/sh linked to /bin/bash



-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: [RFC] [Cross Toolchain] Multiarch and sysrooted toolchain

2009-03-11 Thread Neil Williams
On Wed, 11 Mar 2009 14:50:19 +0100
Goswin von Brederlow  wrote:

> >
> >  [*]
> >   I have been looking lately into making some cross toolchain
> > improvements, one of them will be to change to a sysrooted cross
> > toolchain, but the current layout we are using by dpkg-cross installs
> > relevant bits under:
> >  /{include,bin,lib,lib64}
> >   Mainstream code expects a different layout more LHS compliant,
> >  /{usr/include,bin,lib,lib64}

dpkg-cross currently does:
/usr/
  `-- $arch-linux-gnu/
   |-- include/
   |   `-- foo.h
`-- lib/
 `-- libfoo.so

$ ls /usr/arm-linux-gnu/
bin  include  lib

Very flat but quite simple.

I thought mulitarch wanted:
/usr/
  |-- bin/
  | `-- $arch-linux-gnu/
  |-- include/
  | `-- $arch-linux-gnu/
  | `-- foo.h
  |--  lib64/
  | `-- $arch-linux-gnu/
   `-- lib/
`-- $arch-linux-gnu/
  `-- libfoo.so

?

The problem, as I see it, with /usr/include/$arch-linux-gnu/foo.h is
that it makes it impossible to export one entire tree of all
cross-build stuff. i.e. make /usr/$arch-linux-gnu/ available and
everything is in a single place. Instead, three paths need to be
exported.

So which layout do we need for LHS?

/usr/
   `-- $arch-linux-gnu/
   |-- bin/
   |-- lib64/
   !-- lib/
   |-- usr/
   `--  |-- bin/
|-- include/
|  `-- foo.h
 `-- lib/
   `-- libfoo.so

$ ls /usr/arm-linux-gnu/
bin lib64 lib usr
$ ls /usr/arm-linux-gnu/usr
bin include lib
(with or without a symlink of /usr/arm-linux-gnu/usr/lib64
to /usr/arm-linux-gnu/usr/lib) ?

i.e. a complete hierarchy beneath /usr/arm-linux-gnu/ with files that
are normally in /bin/ in /usr/$arch-linux-gnu/bin and files that are
normally in /usr/bin/ in /usr/$arch-linux-gnu/usr/bin, similarly for
lib.

> >Is there any information arround, maybe LHS, on how to setup 
> > layout?
> >
> >Nowadays we are using non multiarch structure as:
> >
> > usr/$arch-linux-gnu
> > |-- bin
> > |-- include
> > |-- lib
> > `-- lib64
> >
> >But what it should look like in future? /usr/include/$arch-linux-gnu?
> > Would it be reasonable to be using a new layout like:
> >
> > usr/include/$arch-linux-gnu
> 
> That is already standard on i386/amd64 at least. Many /usr/include/*
> files just include the right usr/include/$arch-linux-gnu file
> depending on wether __i386__ or __x86_64__ is set. gcc also looks into
> those dirs on its own. So yes, do use those.

Is that /usr/include/$arch-linux-gnu/usr/include/foo.h ?

> > |-- bin
> 
> All binaries are assumed to do the same thing no matter what
> architecture they are compiled for. As such there is no need to have
> the same binary compiled for different archs at the same time. Also
> any change here would play havock with shebang lines.

binutils-multiarch puts stuff in /usr/$arch-linux-gnu/bin/

$ ls /usr/arm-linux-gnu/bin/
ar  as  ld  nm  objcopy  objdump  ranlib  strip

> >   I am missing some papers on multiarch, are there any kind of
> > information out there.
>
> You are missing the actual multiarch or cross-compile library dirs:
> 
> /usr/$arch-linux-gnu/lib  (cross-compile)
> /usr/lib/$arch-linux-gnu  (multiarch)
>
> I still haven't heart a good reason why multiarch can't use the
> cross-compile dirs as the libraries for each are ment to be
> interchangable (and in fact dpkg-cross demonstrates that already).

Hmm, so dpkg-cross would need to change the path to include/ for
headers but not change the path for libraries?

We'd have:

/usr/arm-linux-gnu/lib/libfoo.so
/usr/include/arm-linux-gnu/include/foo.h
or
/usr/arm-linux-gnu/usr/lib/libfoo.so
/usr/include/arm-linux-gnu/usr/include/foo.h

?

I thought the question was whether we would have:

/usr/lib/arm-linux-gnu/lib/libfoo.so
or
/usr/lib/arm-linux-gnu/usr/lib/libfoo.so
or
/usr/arm-linux-gnu/usr/lib/libfoo.so
or the current
/usr/arm-linux-gnu/lib/libfoo.so

as a conversion of /usr/lib/libfoo.so

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgpmAQytPasu5.pgp
Description: PGP signature


Re: [RFC] [Cross Toolchain] Multiarch and sysrooted toolchain

2009-03-12 Thread Neil Williams
rsion of /usr/lib/libfoo.so
> 
> The question is 
> 
> /arm-linux-gnu/lib/libfoo.so
l> /usr/arm-linux-gnu/[usr/]lib/libbla.so
> /usr/arm-linux-gnu/[usr/]include/foo.h
> 
> or
> 
> /lib/arm-linux-gnu/libfoo.so
> /usr/lib/arm-linux-gnu/libbla.so
> /usr/include/arm-linux-gnu/foo.h
> 
> It has always been a question of where to put the tripplet, not
> whether or not to have an extra subdir below that. Although I'm
> against the subdirs. No need to duplicate that this is "usr".

I'd agree - [usr] below $arch-linux-gnu appears redundant to me. The
only difference between /lib and /usr/lib/ relates to the libraries
required to boot before /usr is mounted. That reasoning doesn't apply
to toolchain issues.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/



pgpm553xyH46c.pgp
Description: PGP signature


Re: [RFC] [Cross Toolchain] Multiarch and sysrooted toolchain

2009-03-12 Thread Neil Williams
On Thu, 12 Mar 2009 19:39:11 +0100
Simon Richter  wrote:

> I think treating cross-building as largely orthogonal to supporting
> multiple runtime ABIs on the same system isn't the worst of ideas

Maybe not, but it isn't a sustainable idea.

>, since
> they have entirely different objectives

Not entirely different - the objective for the packaging tools is
actually the same, to have packages install cleanly without changes on
systems with a different architecture triplet.

>, and there is generally no need to
> install anything but libraries and headers into /usr/ -- so I
> don't think there is a pressing need to replicate a filesystem hierarchy
> standard below a triplet directory.

True, however, that is not a sufficient reason to not
move /usr/ to /usr/lib/ and /usr/include/
if it means getting such support into the core Debian packaging tools.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/



pgpxvRUFuxrcc.pgp
Description: PGP signature


Re: [RFC] [Cross Toolchain] Multiarch and sysrooted toolchain

2009-03-15 Thread Neil Williams
dle the "current" layout than to patch all the software that assumes
> that software is generally installed into "include" and "lib" dirs under a
> common prefix (such as most GNU software that uses the autoconf macros to
> find installed software).
> 
>Simon

That can't work either. If the core Debian packaging tools are going to
change in our favour at all, they are going to change to support
multiarch - that much has been made clear repeatedly. If cross-building
doesn't get up to speed then the packaging tools could change in a way
that breaks all cross-builds, not just the harder corner cases.
Multiarch isn't perfect for Emdebian but it is the best we are going to
get, it is immeasurably better than what we have (principally because
it can support future development needs) and we need to work with it and
modify it to our needs.

The current layout is simply not an option. It has gone as far as it
can go, it simply cannot cope with forthcoming changes within dpkg or
likely future changes. There is no way to make any progress with
cross-building larger parts of Debian without an unsustainable mess of
multiple layers of package patches, specialised tools and horrible
hacks to what should be standard tools. Perpetuating the current system
will only add back layer upon layer of new hacks, to replace the ones
I've been working to remove, as our methods once again fall behind core
Debian methods and get left to bitrot. If that happens, there will be
no way to expand Emdebian Crush.

A lot of progress has been made in removing old hacks from the current
tools but there is nowhere left to go. The next step is to get support
into dpkg - only then can any of the bugs in apt-cross and the more
complex bugs in Emdebian Crush actually get fixed. That much has been
inevitable from the start.

I think that it is highly unlikely that Emdebian Crush will ever be
able to support more than ARM or armel (i.e. one architecture at a
time) *unless* the current cross-building methods are dropped - the
workload is simply too high. I do not think that is acceptable.

There are problems with using multiarch, yes, but the prize is
infinitely more important than the difficulties. If some things need to
be adapted to work with unchanged core tools then so be it - if some
things still need specialised wrappers, so be it. The aim is and has
always been to get the core cross-building support into the core Debian
packaging tools and that means dpkg and no dpkg-cross, it means apt
and no apt-cross and it means that cross-building needs to adopt and
modify multiarch to the point where we can all use it, albeit with
wrappers and support tools where necessary. Then, we can work on
absorbing those wrappers into the new dpkg when the time comes.

Multiarch is the only deal on the table and we need to make it work,
even if certain features/artefacts of the current system are lost.

Please don't argue the points any further, we may lose all that we have
gained so far.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgpJ1XAMaihwM.pgp
Description: PGP signature


reassign 518754 to gcc-4.3, cloning 518754, reassign -1 to gcc-4.4

2009-04-19 Thread Neil Williams
reassign 518754 gcc-4.3 
clone 518754 -1
reassign -1 gcc-4.4 


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org



Re: freeze exception for gcc-4.5 (i386, amd64 only)

2010-08-11 Thread Neil McGovern
Hi Matthias,

Sorry for not getting back to you sooner.

On Sat, Aug 07, 2010 at 11:42:42PM +0200, Matthias Klose wrote:
> gcc-4.5 should be released with squeeze, at least on amd64 and i386.
> gcc-4.5.1 was released a week ago, the first bug and regression fix
> release after the initial gcc-4.5.0 release.
> 

Do you have any information as to why this is needed for squeeze, as
opposed to squeeze+1? Would this be a nice-to-have, or does it solve a
specific problem?

>  - gcc-4.5 will be an optional compiler, not replacing the current
>defaults.

Ok, but if it can be used, it probably will be by at least some things.

> If port maintainers do want to enable gcc-4.5 on a port, they should
> make sure that no regressions are introduced by building the runtime
> libraries from
> 4.5 and ensure that possible regressions are fixed.
> 

This is the bit that worries me. Although it is optional, it can (and
IMO will probably) be used by at least some things. This could lead to
odd bugs. If there's a problem in GCC 4.5 that isn't in 4.4, and it
comes to a security upload, there could be a mismatch between the
requirements.
Do you have details as to the (previously mentioned) unit/regression
tests?

Thanks,
Neil
-- 
* hermanr feels like a hedgehog having sex...


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100811211612.gf7...@halon.org.uk



Re: freeze exception for gcc-4.5 (i386, amd64 only)

2010-08-18 Thread Neil McGovern
On Mon, Aug 16, 2010 at 12:36:34PM +0200, Matthias Klose wrote:
> On 11.08.2010 23:16, Neil McGovern wrote:
> >Hi Matthias,
> >
> >Sorry for not getting back to you sooner.
> >
> >On Sat, Aug 07, 2010 at 11:42:42PM +0200, Matthias Klose wrote:
> >>gcc-4.5 should be released with squeeze, at least on amd64 and i386.
> >>gcc-4.5.1 was released a week ago, the first bug and regression fix
> >>release after the initial gcc-4.5.0 release.
> >>
> >
> >Do you have any information as to why this is needed for squeeze, as
> >opposed to squeeze+1? Would this be a nice-to-have, or does it solve a
> >specific problem?
> 
> it's more than "nice-to-have". See the reasons in my original
> posting (which you didn't include here in the reply).
> 

I'm not sure there are any in the original, plugins and a greater
optimisation level certainly aren't things which will solve specific
problems. Could you highlight them for me?

> >>  - gcc-4.5 will be an optional compiler, not replacing the current
> >>defaults.
> >
> >Ok, but if it can be used, it probably will be by at least some things.
> 
> correct. but it should not introduce rc issues; if it does, then
> fall back to 4.4, or don't use 4.5 in the first place.
> 

Unless things FTBFS on some arches and not others, and thus cause delays
in the freeze.

> >>If port maintainers do want to enable gcc-4.5 on a port, they should
> >>make sure that no regressions are introduced by building the runtime
> >>libraries from
> >>4.5 and ensure that possible regressions are fixed.
> >>
> >
> >This is the bit that worries me. Although it is optional, it can (and
> >IMO will probably) be used by at least some things. This could lead to
> >odd bugs. If there's a problem in GCC 4.5 that isn't in 4.4, and it
> >comes to a security upload, there could be a mismatch between the
> >requirements.
> 
> sorry, I don't understand this reasoning and the implications for
> security uploads. If a package is explicitely built with 4.5, it
> will be built with 4.5 for security uploads too.
> 

Ok, assume that gcc4.5 has some major bug that causes FTBFSes in
certain circumstances, and a package has been modified in a way to take
advantage of gcc4.5, specifically so it won't build with 4.4; then a
problem would occur.

> >Do you have details as to the (previously mentioned) unit/regression
> >tests?
> 
> not besides the test results included in the packages prepared for
> upload.  Is there anything more you would expect?
> 

You mentioned:
> - the upload will build several runtime libraries from the 4.5
>   sources.  Regression tests did pass for the runtime libs built
>   from the 4.5 sources and for 4.4 using the runtime libs from
>   4.5.

At the moment, I'm still not sure on the actual advantage of introducing this 
new package at this stage in the release cycle.

Neil
-- 
* stockholm bangs head against budget
 outsch
 h01ger: it is still very soft, i did not hurt myself
 stockholm: But you bled on the budget, and now it's red again!


--
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100818143615.gn7...@halon.org.uk



Re: freeze exception for gcc-4.5 (i386, amd64 only)

2010-08-20 Thread Neil McGovern
On Wed, Aug 18, 2010 at 05:17:32PM +0200, Matthias Klose wrote:
> >I'm not sure there are any in the original, plugins and a greater
> >optimisation level certainly aren't things which will solve specific
> >problems. Could you highlight them for me?
> 
> Having these features available for developers, and having not to
> wait two years until these appear in a stable release is worth the
> update.  Exposing a new compiler version to upstream developers
> helps reducing the delta between upstream and debian packages. Yes I
> think this is worth having it in squeeze.
> 

I don't think that stable is the place for doing active development.

> >You mentioned:
> >>- the upload will build several runtime libraries from the 4.5
> >>   sources.  Regression tests did pass for the runtime libs built
> >>   from the 4.5 sources and for 4.4 using the runtime libs from
> >>   4.5.
> 
> This didn't answer my question. "Is there anything more you would expect?"
> 

I was asking for details as to what these actually did. Are they just
"will the binary run?"

> >At the moment, I'm still not sure on the actual advantage of introducing 
> >this new package at this stage in the release cycle.
> 
> well, currently I don't see any arguments against the upload, just
> some feelings that could apply to any package.
> 

That's kinda the point. These apply for any package, and especially so
for a toolchain.

Given that there doesn't seem to be any compelling reason for gcc4.5 in
squeeze, I'm afraid it's not going to make it for this release.

Apologies,
Neil
-- 
* hermanr feels like a hedgehog having sex...


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100820093451.gu7...@halon.org.uk



Re: freeze exception for gcc-4.5 (i386, amd64 only)

2010-08-20 Thread Neil Williams
On Fri, 20 Aug 2010 13:07:46 +0200
Reinhard Tartler  wrote:

> On Fri, Aug 20, 2010 at 11:34:51 (CEST), Neil McGovern wrote:
> 
> > On Wed, Aug 18, 2010 at 05:17:32PM +0200, Matthias Klose wrote:
> >> >I'm not sure there are any in the original, plugins and a greater
> >> >optimisation level certainly aren't things which will solve specific
> >> >problems. Could you highlight them for me?
> >> 
> >> Having these features available for developers, and having not to
> >> wait two years until these appear in a stable release is worth the
> >> update.  Exposing a new compiler version to upstream developers
> >> helps reducing the delta between upstream and debian packages. Yes I
> >> think this is worth having it in squeeze.
> >> 
> >
> > I don't think that stable is the place for doing active development.
> 
> stable is in the place so that (upstream) developers can develop their
> applications with hopefully state-of-the art tools.

To a point, but upstreams using stable also expect the dependencies to
build using the stable toolchain and there are still bugs outstanding
(one in my own package) where packages already in Squeeze fail to build
from source with gcc-4.5. gcc-4.5 can't be the default compiler for
Squeeze, so why would it be suitable to be added for only a subset when
this could cause more breakage.

> >> >At the moment, I'm still not sure on the actual advantage of
> >> >introducing this new package at this stage in the release cycle.
> >> 
> >> well, currently I don't see any arguments against the upload, just
> >> some feelings that could apply to any package.
> >> 
> >
> > That's kinda the point. These apply for any package, and especially so
> > for a toolchain.
> >
> > Given that there doesn't seem to be any compelling reason for gcc4.5 in
> > squeeze, I'm afraid it's not going to make it for this release.
> 
>  - gcc-4.5 brings many improvements (e.g., improved C++0x support) that
>help developers a lot during development.
> 
>  - applications developed with g++-4.5 require g++-4.5's runtime
>library, they won't *run* with g++-4.4's libstdc++6 package.
> 
> The second point appears very compelling to me since a considerable
> demand during squeeze's lifetime can be expected because of the first
> point.

To me, the second point actually counts against allowing gcc-4.5
because it makes it a requirement that the entire dependency chain of a
C++ program using g++-4.5 would either generate new bugs or require
rebuilds using g++-4.5 merely to use the optional compiler.

Stable releases need a stable toolchain with known bugs, not a
comparatively untested optional compiler with compatibility issues
against the existing binary packages available in Squeeze.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/



pgpBJSvC5RwVL.pgp
Description: PGP signature


Bug#667341: test builds for template issues in qmf

2012-07-12 Thread Neil Williams
Further to this issue, I've recompiled qmf in a pbuilder chroot with
gcc-4.6 replacing gcc-4.7 and using compiler flags for -Wall -Wextra
and -Werror in the src/libraries/qmfclient subdir and
tests/tst_qmailthread/ sub directories without problems. There doesn't
seem to be anything which gcc-4.6 can pick up as an error or warning in
the qmf sources.

Reinstalling gcc-4.7 & g++-4.7 and rebuilding with the same flags
(and the #include  patch) does not indicate any problems with
the qmfclient library itself, g++-4.7 just fails to link the test
binary.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpJl8X7Ki8QO.pgp
Description: PGP signature


Bug#667341: clang tests

2012-07-12 Thread Neil Williams
/home/qmf-1.0.7~2011w23.2# objdump -C -t 
src/libraries/qmfclient/build/libqmfclient.so.1.0.0 |grep QMailThreadSort|grep 
serial|cut -d' ' -f5-
  F .text   00b3  void 
MailSortKeyImpl::deserialize(QDataStream&)
  F .text   01a0  void 
MailSortKeyImpl::serialize(QDataStream&) const

/home/qmf-1.0.7~2011w23.2# ls -l /usr/bin/g++
lrwxrwxrwx 1 root root 7 Jul 12 15:46 /usr/bin/g++ -> clang++

# dpkg-query -W -f'${Package} ${Version}\n' clang
clang 3.1-8

The same symbols are listed with gcc-4.6.

With gcc-4.7, only the serialize symbol is listed, hence the build
fails in the test suite.

# objdump -C -t src/libraries/qmfclient/build/libqmfclient.so.1.0.0 |grep 
QMailThreadSort|grep serial|cut -d' ' -f5-
  F .text   00d3  void 
MailSortKeyImpl::serialize(QDataStream&) const

# g++ --version
g++ (Debian 4.7.1-4) 4.7.1
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

(now trying some optimisation tests)

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/dash

Versions of packages gcc-4.7 depends on:
ii  binutils  2.22-7
ii  cpp-4.7   4.7.1-4
ii  gcc-4.7-base  4.7.1-4
ii  libc6 2.13-34
ii  libgcc1   1:4.7.1-4
ii  libgmp10  2:5.0.5+dfsg-2
ii  libgomp1  4.7.1-4
ii  libitm1   4.7.1-4
ii  libmpc2   0.9-4
ii  libmpfr4  3.1.0-5
ii  libquadmath0  4.7.1-4
ii  zlib1g1:1.2.7.dfsg-13

Versions of packages gcc-4.7 recommends:
ii  libc6-dev  2.13-34

Versions of packages gcc-4.7 suggests:
pn  binutils-gold
pn  gcc-4.7-doc  
pn  gcc-4.7-locales  
pn  gcc-4.7-multilib 
pn  libgcc1-dbg  
pn  libgomp1-dbg 
pn  libitm1-dbg  
pn  libmudflap0-4.7-dev  
pn  libmudflap0-dbg  
pn  libquadmath0-dbg 

-- no debconf information


-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpjgG0ceHZ4O.pgp
Description: PGP signature


Bug#667341: optimisation tests

2012-07-12 Thread Neil Williams
Dropping the optimisation on src/libraries/qmfclient/ from -O2 to -O1 fixes the 
issue:

# objdump -C -t src/libraries/qmfclient/build/libqmfclient.so.1.0.0 |grep 
QMailThreadSort|grep serial|cut -d' ' -f5-
  F .text   0012  void 
QMailThreadSortKey::serialize(QDataStream&) const
  F .text   00a1  void 
MailSortKeyImpl::deserialize(QDataStream&)
  F .text   0048  void 
QMailThreadSortKey::deserialize(QDataStream&)
  F .text   00cb  void 
MailSortKeyImpl::serialize(QDataStream&) const

.. albeit defining a pair of new symbols...

The functions themselves are public.

class QMF_EXPORT QMailThreadSortKey
{
public:
enum Property
{
Id,
ServerUid
};

typedef QMailSortKeyArgument ArgumentType;

public:

bool isEmpty() const;

const QList &arguments() const;

template  void serialize(Stream &stream) const;
template  void deserialize(Stream &stream);

Why is gcc-4.7 overriding the class and optimising away a public symbol
in -O2 when it does not in -O1 or in gcc-4.6 with -O2?

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpVJo4UKVg7b.pgp
Description: PGP signature


Bug#667341: optimisation tests

2012-07-14 Thread Neil Williams
On Sat, 14 Jul 2012 20:12:45 +0200
Matthias Klose  wrote:

> On 14.07.2012 20:02, Neil Williams wrote:
> > On Sat, 14 Jul 2012 03:08:09 +0200 Matthias Klose  wrote:
> > 
> >> please could you find out, which object files (if there are more than
> >> one) do export this symbol for a -O1 build, and attach the preprocessed
> >> source and command line options for these file(s)?
> > 
> > shell script and gzip'd pre-processed cpp file attached. I've tested in a 
> > clean pbuilder chroot and the results for gcc-4.7 demonstrate the bug:
> [...]
> > objdump -C -t libqmfclient.so.1.0.0|grep deserialize
> 
> no, the dump/grep is needed for each .o file in libqmfclient.so.1.0.0. and the
> preprocessed source for each matching .o file.

There is only one .o file needed for this test, so the adapted script
is attached. The pre-processed cpp doesn't change with optimisation.

Output also attached.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/

#!/bin/sh

# Debug support for #667341

set -e

run () {
LIBDIR=`dpkg-architecture -qDEB_HOST_MULTIARCH`
if [ -f qmailthreadsortkey.o ]; then
	rm qmailthreadsortkey.o
fi
if [ -f libqmfclient.so.1.0.0 ]; then
	rm libqmfclient.so.1.0.0
fi
# Checking pre-processed cpp file
echo "Checking pre-processed cpp file"
grep "QMailThreadSortKey::deserialize" qmailthreadsortkey.cpp
# Line for pre-processed cpp file
g++ -c -pipe ${OPTS} -Wall -W -fPIC -o qmailthreadsortkey.o qmailthreadsortkey.cpp
echo "Checking for deserialize symbol in object file:"
objdump -C -t qmailthreadsortkey.o|grep deserialize|c++filt

# original line which needs libqt4-dev installed
#g++ -c -pipe ${OPTS} -Wall -W -D_REENTRANT -fPIC -DQT_WEBKIT -DQT_BUILD_QCOP_LIB -DQMF_INTERNAL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtSql -I/usr/include/qt4 -Isupport -I. -o qmailthreadsortkey.o qmailthreadsortkey.cpp

# Line for pre-processed cpp file
g++ -Wl,${OPTS} -shared -Wl,-soname,libqmfclient.so.1 -o libqmfclient.so.1.0.0 qmailthreadsortkey.o  -L/usr/lib/${LIBDIR} -lpthread

# original line (shortened) which needs libqt4-dev installed
#g++ -Wl,${OPTS} -shared -Wl,-soname,libqmfclient.so.1 -o libqmfclient.so.1.0.0 qmailthreadsortkey.o  -L/usr/lib/${LIBDIR} -lQtSql -lQtNetwork -lQtCore -lpthread

echo "Checking for deserialize symbol in library:"
objdump -C -t libqmfclient.so.1.0.0|grep deserialize|c++filt
}

echo "Starting with -O1"
OPTS="-O1"
run
echo "Changing to -O2"
OPTS="-O2"
run



output
Description: Binary data


pgpWfikFd4TpW.pgp
Description: PGP signature


Bug#553047: More info - no such file libc-2.10.1.so after a build in chroot

2010-04-10 Thread Neil Williams

gcc (2.95.1-1) unstable; urgency=low
  * debian/rules2 [binary-arch]: Call dh_shlibdeps with LD_LIBRARY_PATH
set to installation dir of libstdc++. Why isn't this the default?
 -- Matthias Klose   Sat, 28 Aug 1999 18:16:31 +0200

So the question is why this is new.

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+
$LD_LIBRARY_PATH:}/usr/powerpc-linux-gnu/lib ARCH=powerpc
MAKEFLAGS="CC=something" dh_shlibdeps -plibgcc1-powerpc-cross

error while loading shared
libraries: /usr/powerpc-linux-gnu/lib/libc.so.6: ELF file data encoding
not little-endian

i.e. dh_shlibdeps might not listening to ARCH but is taking the
underlying system as the base from which to determine the endianness it
should check. It's reading the i386 endianness and complaining that
powerpc isn't the same endianness. Ooops. Alternatively, see the end of
this email - dh_shlibdeps might actually be tripping over a file that
should not exist in the build environment at all.

The URLs didn't work - I'm looking at:
http://www.emdebian.org/~zumbi/toolchain/i386-unstable/logs/i386-powerpc-4.4.log
http://www.emdebian.org/~zumbi/toolchain/i386-unstable/logs/i386-powerpc-4.3.log

It doesn't help that I'm using the toolchains for Lenny but have to get
binutils-powerpc-linux-gnu from sid as a build-dep for gcc-4.4 but
I've just build gcc-4.3-powerpc-linux-gnu OK in the same chroot and
then upgrading binutils-powerpc-linux-gnu again to 2.20.1-3 for 4.4.

However, I get a different error:

sed s/-powerpc-cross//g < debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs
> debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs.fixed /bin/bash:
> debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs: No such file or
> directory

In particular, dh_shlibdeps works:

dh_makeshlibs -plibgcc1-powerpc-cross -n
sed s/-powerpc-cross//g < debian/libgcc1-powerpc-cross/DEBIAN/shlibs > 
debian/libgcc1-powerpc-cross/DEBIAN/shlibs.fixed
mv debian/libgcc1-powerpc-cross/DEBIAN/shlibs.fixed 
debian/libgcc1-powerpc-cross/DEBIAN/shlibs
cat debian/libgcc1-powerpc-cross/DEBIAN/shlibs >> debian/shlibs.local
LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/usr/powerpc-linux-gnu/lib 
ARCH=powerpc MAKEFLAGS="CC=something" dh_shlibdeps -plibgcc1-powerpc-cross
sed -i 's...@[ =]lib[^ ,]*@&-powerpc-cr...@g' 
debian/libgcc1-powerpc-cross.substvars

and continues on to:

dh_makeshlibs -plibgomp1-powerpc-cross
sed s/-powerpc-cross//g < debian/libgomp1-powerpc-cross/DEBIAN/shlibs > 
debian/libgomp1-powerpc-cross/DEBIAN/shlibs.fixed
mv debian/libgomp1-powerpc-cross/DEBIAN/shlibs.fixed 
debian/libgomp1-powerpc-cross/DEBIAN/shlibs
LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/usr/powerpc-linux-gnu/lib 
ARCH=powerpc MAKEFLAGS="CC=something" dh_shlibdeps -plibgomp1-powerpc-cross
sed 's/\(lib[^ ]*\) /\1-powerpc-cross /g' < 
debian/libgomp1-powerpc-cross.substvars > 
debian/libgomp1-powerpc-cross.substvars.new
mv debian/libgomp1-powerpc-cross.substvars.new 
debian/libgomp1-powerpc-cross.substvars

and thence to:
dh_installdirs -plib64gomp1-powerpc-cross \
usr/lib64
DH_COMPAT=2 dh_movefiles -plib64gomp1-powerpc-cross \
usr/lib64/libgomp.so.*
dh_movefiles: Compatibility levels before 5 are deprecated.
debian/dh_doclink -plib64gomp1-powerpc-cross gcc-4.4-powerpc-linux-gnu-base
WARNING: removing doc directory  lib64gomp1-powerpc-cross
dh_strip -plib64gomp1-powerpc-cross #--dbg-package=lib64gomp1-dbg
dh_compress -plib64gomp1-powerpc-cross #-plib64gomp1-dbg
dh_fixperms -plib64gomp1-powerpc-cross #-plib64gomp1-dbg
dh_makeshlibs -plib64gomp1-powerpc-cross
sed s/-powerpc-cross//g < debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs > 
debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs.fixed
/bin/bash: debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs: No such file or 
directory

I used:
# GCC_TARGET=powerpc DEB_CROSS=yes fakeroot debian/rules control
# DEB_CROSS_NO_BIARCH=yes GCC_TARGET=powerpc DEB_CROSS=yes dpkg-buildpackage 
-us -uc -rfakeroot

Hector: problem is, I don't have the
file /usr/powerpc-linux-gnu/lib/libc-2.10.1.so after the build or as a
result of installing the necessary build dependencies.

r...@dwarf:~/gcc-4.4-4.4.3# file /usr/powerpc-linux-gnu/lib/libc-2.10.1.so
/usr/powerpc-linux-gnu/lib/libc-2.10.1.so: ERROR: cannot open 
`/usr/powerpc-linux-gnu/lib/libc-2.10.1.so' (No such file or directory)

It's not a file in Debian sid either (crossed or native):

You have searched for paths that end with libc-2.10.1.so in suite sid, all 
sections, and all architectures.
Sorry, your search gave no results

http://www.uk.debian.org/distrib/packages#search_contents

As the file isn't in Debian, dpkg-cross wouldn't normally have created
a package to put the file into /usr/powerpc-linux-gnu/lib/

Question is, where did this file come from?

I can check the chroot on emdebian.org - I just need to know which one
was used.

Could this be a resul

Re: sh4 architecture into Wheezy

2011-04-26 Thread Neil McGovern
On Tue, Apr 26, 2011 at 12:58:24PM +0900, Nobuhiro Iwamatsu wrote:
> > We don't have faster hardware.
> > We think of a too slow thing in a question
> 
> A test of gcc of sh4 takes time.
> When there is not a test, a package is done in about two days.
> 
> How does sh4 become targeted for the release architecture?
> Can sh4 disable gcc test?
> 

I woudn't be particularly happy with that unless the gcc maintainers ok
it, and I'm still not sure that two days is also an acceptable
timescale.

Have you tried a SH4A with a dual core? At the moment, I think that this
issue is severe enough that it can't be a release architecture. (Note
that if it is solved, there may be other problems, but we can get to
those later.)

Neil
-- 
A. Because it breaks the logical sequence of discussion
Q. Why is top posting bad?
gpg key - http://www.halon.org.uk/pubkey.txt ; the.earth.li A40F862E


-- 
To UNSUBSCRIBE, email to debian-gcc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110426073922.gc7...@feta.halon.org.uk



Bug#633365: libppl-swi: Getting rid of unneeded *.la / emptying dependency_libs

2011-07-09 Thread Neil Williams
Package: libppl-swi
Version: 0.11.2-3
Severity: normal
User: codeh...@debian.org
Usertags: la-file-removal

To finish an old release goal from Squeeze, to comply with Policy
10.2 and to ease the introduction of MultiArch, I'm filing bugs
against packages which contain .la files which can be either removed
or stripped of the dependency_libs variable.

http://wiki.debian.org/ReleaseGoals/LAFileRemoval

http://lists.debian.org/debian-devel/2011/04/msg00055.html

http://lists.debian.org/debian-devel/2011/04/msg00199.html

Data has been obtained from the output of an automated script:

http://release.debian.org/~aba/la/current.txt

The output is best read in conjunction with the criteria from this
post to debian-devel:

http://lists.debian.org/debian-devel/2009/08/msg00808.html

To generate the list of packages, I've used:

grep -v depended-on current.txt |cut -d: -f1

The data is regularly updated but please accept my apologies if you
have made an upload which changes the situation since the data was
parsed.

libppl-swi (0.11.2-3) appears in this list as a source package
because one or more of the binary packages (usually -dev packages)
contain .la files.

In this case, the .la file is in libppl-swi:

/usr/lib/ppl/libppl_swiprolog.la

# Libraries that this one depends upon.
dependency_libs=' /usr/lib/libppl.la -L/usr/lib /usr/lib/libpwl.la 
/usr/lib/libgmpxx.la /usr/lib/libgmp.la'

In most cases, the .la file(s) can simply be removed as the process
behind this MBF has already identified that there are no further
dependencies using the .la file. In the unusual case that your
package uses libltdl directly, it is still necessary to empty the
dependency_libs part of all .la files remaining in the package.

If you believe that your package needs both the .la file and the
dependency_libs settings, please raise this on debian-devel for
clarification.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpWFqMTKvwXH.pgp
Description: PGP signature


Bug#431086: please support reverse cross build

2007-06-29 Thread Neil Williams
Package: gcc-4.2
Version: 4.2-20070627-1
Severity: normal
Tags: patch

On Thu, 28 Jun 2007 14:47:55 +0200
Martin Michlmayr <[EMAIL PROTECTED]> wrote:

> Throughout the development of GCC 4.2, we regularly recompiled the
> entire Debian archive with development snapshots of GCC to make sure
> that we'd end up with a reliable compiler.  We have done regular
> rebuilds on IA64 and AMD64, and we have tested almost every
> architecture at some point during the development phase of 4.2 (the
> exception being hppa and m68k, as well as non-Linux platforms).  We
> now have a compiler with relatively few known issues.

One issue that arose during DebConf7 relates to an upstream behaviour of
gcc that is not working inside the debian packaging code.

Emdebian has been building cross-compiler toolchains for some time but
in order to be able to build all Emdebian packages from source, we need
to be able to cross build gcc, not to provide a cross compiler but to
provide some core libraries - specifically libgcc1 and libstsdc++6-foo
- cross built for a different host.

e.g.
Build=amd64|i386|powerpc
Host=arm
Target=arm

compared to
build=amd64|i386|powerpc
host=amd64|i386|powerpc
target=arm
for a standard cross-compiler.

As host==target this isn't a full canadian cross, more of a reverse
cross.

A normal arm-linux-gnu-gcc etc. toolchain is used to build these
packages.

The attached patches to debian/rules.defs and debian/rules2 provide
support for these builds as well as outline support for a full canadian
cross build.


--- System information. ---
Architecture: amd64
Kernel:   Linux 2.6.21-1-amd64

Debian Release: lenny/sid
  500 unstablewww.linux.codehelp.co.uk 
  500 unstablewww.emdebian.org 
  500 unstableftp.uk.debian.org 

--- Package information. ---
Depends  (Version) | Installed
==-+-==
gcc-4.2-base(= 4.2-20070627-1) | 4.2-20070627-1
cpp-4.2 (= 4.2-20070627-1) | 4.2-20070627-1
binutils  (>= 2.17cvs20070426) | 2.17cvs20070426-8
libgcc1  (>= 1:4.2-20070627-1) | 1:4.2-20070627-1
libgomp1   (>= 4.2-20070627-1) | 4.2-20070627-1
libc6   (>= 2.5-5) | 2.5-11




-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

--- gcc-4.2.old/debian/rules.defs	2007-06-29 12:34:25.0 +0100
+++ gcc-4.2.cross/debian/rules.defs	2007-06-29 16:10:04.0 +0100
@@ -66,6 +66,28 @@
 endif
 
 # ---
+# full canadian
+# typical cross-compiler
+# reverse cross (built to run on the target)
+# native
+#
+# build != host && host == target : reverse cross (REVERSE_CROSS == yes)
+# build == host && host != target : typical cross (DEB_CROSS == yes)
+# build != host && host != target : canadian (DEB_CROSS == yes)
+# build == host && host == target : native
+ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
+ ifneq ($(DEB_HOST_GNU_TYPE), $(DEB_TARGET_GNU_TYPE))
+	DEB_CROSS = yes
+ else
+ 	REVERSE_CROSS = yes
+ endif
+ else
+ ifneq ($(DEB_HOST_GNU_TYPE), $(DEB_TARGET_GNU_TYPE))
+	DEB_CROSS = yes
+ endif  
+endif
+
+# ---
 # which binary packages are built?
 
 # cross compiler support. If GCC_TARGET is set, then it's the architecture
@@ -75,8 +97,7 @@
 $(error GCC_TARGET value "$(GCC_TARGET)" is not a valid Debian architecture)
 endif
 
-ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_TARGET_GNU_TYPE))
-  DEB_CROSS = yes
+ifdef DEB_CROSS
   # TP: Target Prefix. Used primarily as a prefix for cross tool
   # names (e.g. powerpc-linux-gcc).
   # TS: Target Suffix. Used primarily at the end of cross compiler
@@ -700,6 +721,9 @@
 ifdef DEB_CROSS
   with_check := disabled for cross compiler package
 endif
+ifdef REVERSE_CROSS
+  with_check := disabled for reverse cross build
+endif
 check_no_systems := hurd-i386
 ifneq (, $(filter $(DEB_TARGET_GNU_SYSTEM),$(check_no_systems)))
   with_check := disabled for $(DEB_TARGET_GNU_SYSTEM)
--- gcc-4.2.old/debian/rules2	2007-06-29 12:34:25.0 +0100
+++ gcc-4.2.cross/debian/rules2	2007-06-29 16:03:57.0 +0100
@@ -535,7 +535,9 @@
 $(build_stamp): $(configure_stamp) $(build_locale_stamp)
 	dh_testdir
 	rm -f bootstrap-protocol
+# DEB_CROSS is never set if REVERSE_CROSS is set and vice-versa.
 ifndef DEB_CROSS
+ifndef REVERSE_CROSS
   ifeq ($(with_java),yes)
 ifeq ($(with_native_ecj),yes)
 	: # prepare the standalone ecj jar
@@ -608,6 +610,7 @@
 	) 2>&1 | tee bootstrap-protocol
 	s=`cat status`; rm -f status; test $$s -eq 0
 endif
+endif
 	-chmod 755 $(srcdir)/contrib/warn_summary
 	if [ -x $(srcdir)/contrib/warn_summary ]; then \
 	  rm -f bootstrap-summary; \


pgpPpxrKiTnZM.pgp
Description: PGP signature


Re: GCC 4.2 transition

2007-07-20 Thread Neil McGovern
On Fri, Jul 20, 2007 at 11:51:47AM +0200, Mike Hommey wrote:
> On Fri, Jul 20, 2007 at 11:33:01AM +0200, Johannes Berg <[EMAIL PROTECTED]> 
> wrote:
> > On Fri, 2007-07-20 at 10:16 +0200, Matthias Klose wrote:
> > 
> > > Does any port still need to stick with GCC 4.1 for a while?  Feedback
> > > from hppa, mips*, s390, powerpc, amd64, i386 porters doesn't show
> > > objections against the transition.
> > 
> > I have objections :)
> > http://bugs.debian.org/433629
> > Yes, it's pretty odd, but recompiling the whole kernel tree with gcc 4.2
> > causes my usbhid to totally not work.
> 
> I have another objection. I'd like all mozilla security updates to be built
> before gcc 4.2 becomes the default, because they don't build correctly yet,
> and I am (still) waiting for an upstream comment on how to fix it.
> 

On a more general note, I'd like to see xulrunner/nss built and
depending packages[0] built so we can get the fixes into testing easier
before this is started.

Cheers,
Neil
[0] Most of: http://security-tracker.debian.net/tracker/status/dtsa-candidates
-- 
int getRandomNumber() {
return 4; // chosen by fair dice roll. guaranteed to be random.
}
// http://xkcd.com/c221.html


signature.asc
Description: Digital signature


Bug#414099: gcc-4.1: cross build failure: debug package not built when cross compiling

2007-09-16 Thread Neil Williams
On Mon, 17 Sep 2007 00:46:49 +0200
Jö Fahlke <[EMAIL PROTECTED]> wrote:

> I don't currently have a powerpc machine up and running, so I won't
> be able to test the resulting compiler very much.  Also, I've switched
> to lenny in the meantime.  For building the pakage, I'm using
> 
> * dpkg-cross 1.39

Currently being re-written. 1.99+2.0.0pre1 is in experimental, pre2 is
pending changes in dpkg.

The rest of the issues are all to do with gcc-4.2, not dpkg-cross.

> * libgcc1-powerpc-cross is needed to cross-build gcc-4.2 since the
>   libc stuff depends on it. 

libc6-foo-cross to be precise.

> However, cross-building gcc will produce
>   another version of libgcc1-powerpc-cross.  The version produced by
>   dpkg-cross depends on gcc-4.2-base-powerpc-cross, while the other
>   version depends on gcc-4.2-powerpc-linux-gnu-base, which was
>   produced in the cross-build.

You've missed a trick with the dpkg-cross one - use the '-X' option to
exclude Architecture:all packages or use apt-cross to download, build
and install libgcc1-foo-cross in one operation so that the dependency is
omitted.

dpkg-cross (like dpkg) isn't aware of the detail of a dependency - it
just knows the name. apt-cross uses the apt cache to retrieve data
(like whether it is Architecture:all) and uses that data to make
sensible decisions about which dependencies are relevant to dpkg-cross
and passes the '-X' option for the others.

When building Emdebian toolchains, we install libgcc1 (amongst others)
using apt-cross, then build binutils and gcc, then install in one
operation.

Try checking the source code of emchain from emdebian-tools.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgp2YDoqyvZRe.pgp
Description: PGP signature


Bug#769797: marked as done (gnat-4.9: FTBFS: Needs update for gcc-4.9-4.9.2)

2015-01-20 Thread Neil Williams
On Mon, 19 Jan 2015 11:45:28 +0100
Matthias Klose  wrote:

> reopen 769797
> found 769797 4.9.1-4
> thanks
> 
> On 01/18/2015 11:51 AM, Debian Bug Tracking System wrote:
> > Your message dated Sun, 18 Jan 2015 10:46:31 +
> > with message-id <20150118104631.13a3ecaf@sylvester.codehelp>
> > and subject line No longer found
> > has caused the Debian Bug report #769797,
> > regarding gnat-4.9: FTBFS: Needs update for gcc-4.9-4.9.2
> > to be marked as done.
> 
> unless you tell me how the b-d
> 
>   gcc-4.9-source (<< 4.9.2)
> 
> is satisfied in unstable, please leave this issue open.

That doesn't make sense. gnat-4.9 in unstable has build-dependencies
which can be satisfied in unstable. gnat-4.9 in testing has
build-dependencies which can be satisfied in testing.

Why would the build-dependency gcc-4.9-source (<< 4.9.2) in gnat-4.9 in
*testing* be relevant when checked in unstable?

gnat-4.9 in testing does build just fine, in testing, so the bug title
is - at least - inaccurate. There is no FTBFS in gnat-4.9 4.9.1-4
unless trying to build in unstable - which is unnecessary because
Policy doesn't require that packages in testing build in unstable - it
does that the packages in testing build in testing. In my tests, that
requirement is met.

What is the actual purpose of this bug? Why is a build-dependency
constraint in testing relevant to builds in unstable? It's not as if
gnat-4.9 is about to migrate into testing, even then the new version
would migrate with the constraints met.

-- 


Neil Williams
=
http://www.linux.codehelp.co.uk/



pgpbnbEwmKcfw.pgp
Description: OpenPGP digital signature


Re: preprocessor/2881: code inside "#if 0" generates warnings with -pedantic

2001-05-20 Thread Neil Booth
Markus F.X.J. Oberhumer wrote:-

> #if 0
> // int bar =3D 1;
> #endif

Zack, what's you opinion of this?  Whether we accept the // can
affect tokenisation, which must still be valid in skipped blocks.

In other words, acceptance of

#if 0
// '
#endif

depends upon whether we accept //.  I'm tempted to leave it as it is,
but we can turn of the warning if you think it's inappropriate.

Neil.




[Bug c/29468] off-by-one error for string initialiser warning

2006-10-14 Thread neil at gcc dot gnu dot org


--- Comment #1 from neil at gcc dot gnu dot org  2006-10-14 12:25 ---
Not a bug - just 2 elements are initialized, the NUL is dropped.


-- 

neil at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29468

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



[Bug c/11459] -stdc=c99 -pedantic -ansi warns about C90's non long-long support when in C99 mode

2003-07-09 Thread neil at daikokuya dot co dot uk
PLEASE REPLY TO [EMAIL PROTECTED] ONLY, *NOT* [EMAIL PROTECTED]

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11459



--- Additional Comments From neil at daikokuya dot co dot uk  2003-07-09 
05:45 ---
Subject: Re:  -stdc=c90 -pedantic -ansi warns about C90's non long-long support 
when in C99 mode

pinskia at physics dot uc dot edu wrote:-

> pinskia at physics dot uc dot edu changed:
> 
>What|Removed |Added
> 
> Summary|-stdc=c90 -pedantic warns   |-stdc=c90 -pedantic -ansi
>|about C90's non long-long   |warns about C90's non long-
>|support when in C99 mode|long support when in C99
>||mode
> 
> 
> --- Additional Comments From pinskia at physics dot uc dot edu  
> 2003-07-08 20:11 ---
> The bug report is wrong because with those options, I do not get the warning 
> but reading 
> the bug report which is this is forward from, I see that the option -ansi is 
> there, I do not 
> know what is should happen when you say '-std=c99 -ansi' or '-ansi -std=c99', 
> should gcc 
> put into c89 or c99?  Could some else look at this bug and say what should 
> gcc do?

-ansi means -std=c89.  Which ever comes later of -ansi and -std=c99 should win; 
this
is the general rule (sadly some exceptions are insisted on).

Neil.




--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.




Bug#122103: [Bug c/9071] Warning for blocks not closed in same file as opened in

2004-01-13 Thread neil at gcc dot gnu dot org


-- 
   What|Removed |Added

  Component|preprocessor|c


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9071

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.




[Bug c/9071] Warning for blocks not closed in same file as opened in

2004-02-04 Thread neil at gcc dot gnu dot org

--- Additional Comments From neil at gcc dot gnu dot org  2004-02-04 10:26 
---
Nothing to do with CPP.

-- 
   What|Removed |Added

  Component|preprocessor|c


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9071

--- You are receiving this mail because: ---
You reported the bug, or are watching the reporter.