Re: Adding ~/.local/bin to default PATH

2011-07-27 Thread Jakub Jelinek
On Wed, Jul 27, 2011 at 04:24:06PM +0200, Miloslav Trmač wrote:
 IMHO the ~/.local/bin place is a mistake, and it's still not too late
 to stop making this mistake irreversible.

Yeah.  Every $PATH element has its runtime cost (execvp needs to search
that path, at least for unsuccessful searches, or if a later element
contains a dir which actually contains the right executable), and hiding
a dir into which something stores executables that are to be found by
default is certainly not desirable.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: floppy support

2011-08-31 Thread Jakub Jelinek
On Tue, Aug 30, 2011 at 10:41:45PM -0500, Bruno Wolff III wrote:
 %install
 rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT%{_libdir}/modules-load.d
 echo floppy  $RPM_BUILD_ROOT%{_libdir}/modules-load.d/floppy.conf

%{_sysconfdir} instead of %{_libdir} everywhere.

 %files
 %{_libdir}/modules-load.d/floppy.conf

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Notice of intent: patching glibc

2011-09-01 Thread Jakub Jelinek
On Thu, Sep 01, 2011 at 09:34:10AM +0200, Andreas Schwab wrote:
 Adam Williamson awill...@redhat.com writes:
 
  But I did mention all the various bug reports - Arch and upstream - in
  my ML post on the topic: subject glibc causing crashes in most
  anything that does DNS lookups in F16.
 
 That is useless.  Please always put such important information in the
 bug report, so that it can be found.

It is also in bugzilla, just not in
https://bugzilla.redhat.com/show_bug.cgi?id=730856
but in https://bugzilla.redhat.com/show_bug.cgi?id=732857
which has been marked as duplicate of that.
You should always look at all the bugs dupped together to find more info
about the bug if it isn't clear how to reproduce it.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Notice of intent: patching glibc

2011-09-02 Thread Jakub Jelinek
On Fri, Sep 02, 2011 at 01:20:19PM -0700, Adam Williamson wrote:
 Is there a specific reason glibc does this?

Yes.

 Can it not have a set of patches, one per change, as is usual practice?

Fedora glibc sources are from git, and the bit diff is just generated
diff between the upstream snapshot and corresponding Fedora snapshot,
sans a few Fedora-only directories (which are packaged as extra tarball).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Notice of intent: patching glibc

2011-09-03 Thread Jakub Jelinek
On Sat, Sep 03, 2011 at 09:38:46AM +0100, Richard W.M. Jones wrote:
  Fedora glibc sources are from git, and the bit diff is just generated
  diff between the upstream snapshot and corresponding Fedora snapshot,
  sans a few Fedora-only directories (which are packaged as extra tarball).
 
 That's not a reason.
 
 Why not keep the Fedora branch in git and make patches from it:
 
 https://rwmj.wordpress.com/2011/08/09/nice-rpm-git-patch-management-trick/
 
 This method is quite probably simpler than the one you're using now.

glibc is doing it that way for many years, even when it was diffing upstream
CVS trunk vs. Fedora CVS branch, not sure if the Fedora changes from CVS era
would result in something reasonable with your tricks, but moreover what
glibc does now is fully scripted in the Makefiles and it would be extra work
to change it to something different.  I'd say it is up to the Fedora glibc
maintainer to do it the way he prefers to (which is not me for a couple of
years now).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Compiling 32bit on 64bit Fedora

2011-09-07 Thread Jakub Jelinek
On Wed, Sep 07, 2011 at 11:52:58AM -0400, Nathaniel McCallum wrote:
 gcc -m32 -o foo foo.c gives me:
 /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
 or directory
 
 If I copy the gnu/stubs-32.h file from the 32bit glibc-devel package
 into the right place and run the command above again I get:
 /usr/bin/ld: cannot find crt1.o: No such file or directory
 /usr/bin/ld: cannot find crti.o: No such file or directory
 /usr/bin/ld: skipping
 incompatible /usr/lib/gcc/x86_64-redhat-linux/4.6.1/libgcc_s.so when
 searching for -lgcc_s
 /usr/bin/ld: cannot find -lgcc_s
 /usr/bin/ld: skipping incompatible /usr/lib64/libc.so when searching for
 -lc
 /usr/bin/ld: cannot find -lc
 /usr/bin/ld: skipping
 incompatible /usr/lib/gcc/x86_64-redhat-linux/4.6.1/libgcc_s.so when
 searching for -lgcc_s
 /usr/bin/ld: cannot find -lgcc_s
 /usr/bin/ld: cannot find crtn.o: No such file or directory
 collect2: ld returned 1 exit status
 
 Hrm...
 
 Am I doing something wrong? Or is this a packaging bug? I can't think of
 any reason why I shouldn't be able to compile at least a basic C program
 with no deps as 32bit on 64bit.

No, it is a user error.  The packaging goal is that nobody is forced to have
32-bit packages installed on x86_64 (and similarly for other architectures).
So, if you want to compile/link 32-bit packages, you need to install a
minimal set of 32-bit packages (at least
yum install glibc-devel.i686 libgcc.i686
).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Development to release quality

2011-09-12 Thread Jakub Jelinek
On Mon, Sep 12, 2011 at 10:05:05AM -0400, Clyde E. Kunkel wrote:
 On 09/12/2011 06:01 AM, Matej Cepl wrote:
  Too much QA (or any external QA) imposed on the development make it
  slower. Compare Linux v. OpenSolaris kernel development. Fedora tries to
  be very fast developing distro, thus less QA in the development version.

 Ah yes, the ol' QA conundrum.  There isn't enough when a bad product 
 slips into production and there is too much the rest of the time.
 
 We need QA.  We also need to remember QA's place in this world--support, 
 not line management, not the the final arbiter.  But then this is 
 another long thread.

Sure, we need QA, but for rawhide the development shouldn't be totally
stalled as it is already in F16 right now, where updates for critpath
packages, even when they have several hundred thousands of tests
performed already during package building, just sit in bodhi for 2-3 weeks,
often with first proventester karma after 12 or 14 days.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: [Guidelines Change] Changes to the Packaging Guidelines

2011-09-22 Thread Jakub Jelinek
On Thu, Sep 22, 2011 at 01:06:51PM -0400, Tom Callaway wrote:
 Here are the latest changes to the Fedora Packaging Guidelines:
 
 ---
 
 The section of the Packaging Guidelines regarding Compiler Flags has
 been updated and improved, most notably, to document handling of PIE
 enabled packages.
 
 https://fedoraproject.org/wiki/Packaging:Guidelines#Compiler_flags

This adds -fPIC (if -fPIE is not already present) to the compiler flags, and
adds -z now to the linker flags. 

That should be ... adds -fPIE (if -fPIC is not already present) ...
I'd say.  At least I hope that's what the spec change does, the initial
version did that.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: [Guidelines Change] Changes to the Packaging Guidelines

2011-09-22 Thread Jakub Jelinek
On Thu, Sep 22, 2011 at 01:59:33PM -0400, Tom Callaway wrote:
 On 09/22/2011 01:36 PM, Jakub Jelinek wrote:
  That should be ... adds -fPIE (if -fPIC is not already present) ...
  I'd say.  At least I hope that's what the spec change does, the initial
  version did that.
 
 No, I'm fairly sure that it only adds -fPIC in scenarios where -fPIE is
 not already passed. Adam can probably comment further on why.

Ah, I see:

%rename cc1_options rh_cc1_options_old  
   

   
*cc1_options:   
   
%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIC} %(rh_cc1_options_old) 
   

That looks just wrong.  -fpie/-fPIE is in general faster than -fpic/-fPIC,
because it can assume (non-weak) symbols defined in the object can't be
overridden.  Without hardening, objects compiled without
-fpie/-fPIE/-fpic/-fPIC assume that too (and additionally are position
dependent), so I fail to see why you'd want to default to -fPIC.  You
certainly want to default to -fPIE.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: [Guidelines Change] Changes to the Packaging Guidelines

2011-09-22 Thread Jakub Jelinek
On Thu, Sep 22, 2011 at 02:18:10PM -0400, Adam Jackson wrote:
  %rename cc1_options rh_cc1_options_old  
 
  
 
  *cc1_options:   
 
  %{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIC} %(rh_cc1_options_old) 
 
  
  That looks just wrong.  -fpie/-fPIE is in general faster than -fpic/-fPIC,
  because it can assume (non-weak) symbols defined in the object can't be
  overridden.  Without hardening, objects compiled without
  -fpie/-fPIE/-fpic/-fPIC assume that too (and additionally are position
  dependent), so I fail to see why you'd want to default to -fPIC.  You
  certainly want to default to -fPIE.
 
 You can't default to -fPIE because at cc1 time you don't know whether
 the object is destined for a DSO or not, -fPIE will produce relocations
 that aren't legal in DSOs, and ld isn't awesome enough to convert them
 for you.

Such packages would be broken and would fail to link without hardening
or at least have text relocations too.  Packagers shouldn't rely on
this spec hack to fix up their packaging bugs (or upstream bugs), the hack
should be just about changing position dependent binaries in the executable
into position independent binaries.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Another glibc change that nearly got pushed into F16

2011-10-26 Thread Jakub Jelinek
On Wed, Oct 26, 2011 at 10:06:31AM -0400, Tom Lane wrote:
 /usr/include/glib-2.0/glib/gmacros.h:32:2: error: #error Only glib.h can 
 be included directly.
 
 or close variants of that.  I assume this is another manifestation of
 the same bug being discussed here ... or have the glibc guys managed to
 break the world in two different ways in the same release?

You are confusing glibc with glib here, the above very much looks like
a glib bug, nothing to do with glibc.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: systemd acceptance, packaging guidelines (was Re: systemd and changes)

2010-08-25 Thread Jakub Jelinek
On Wed, Aug 25, 2010 at 04:08:49PM +0200, Lennart Poettering wrote:
 On Wed, 25.08.10 03:03, Miloslav Trmač (m...@volny.cz) wrote:
  The traditional solution is to reexec not on shutdown, but immediately
  after init upgrade (which also frees the inodes early); this can still
  race with shutdown in theory, but is probably good enough in practice.
 
 Well, while reexecing on package upgrades might kinda help fix the issue
 I think it doesn't really scale, because you'd have to reexec systemd
 when any of the libs it uses is upgraded, i.e. glibc, audit, selinux,
 tcpwrap, pam, libcap.

glibc %post (and prelink cron scripts) already telinit u when libc/ld.so
(resp. any library) changes.

 So I guess there's isn't really any other option then reexecing init in
 some way on shutdown.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: -static packages

2010-09-15 Thread Jakub Jelinek
On Wed, Sep 15, 2010 at 05:06:20PM +0100, Robert Spanton wrote:
 I've recently had to link a fair amount of my work statically so that
 it'll run on a cluster of RHEL machines.  Unfortunately, I am just a
 user of these machines, and so I don't have the power to get them to run
 Fedora or even to get the admins to install RHEL packages in a timely
 manner.  Building statically also helps me to eliminate as many of the
 inevitable fractional differences between cluster nodes as possible, to
 achieve reproducible results from simulation runs.
 
 However, only a few packages in Fedora provide -static variants.  This
 has meant that I've had to locally build these, which is obviously not
 desirable from a maintenance perspective.
 
 So, would be acceptable to register requests for -static package
 variants as tickets on bugzilla?  Or is there a better way to try to
 encourage people to generate these packages?

Better yet is not to link statically.
http://www.akkadia.org/drepper/no_static_linking.html

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: -frecord-gcc-switches as default CFLAG?

2010-11-01 Thread Jakub Jelinek
On Mon, Nov 01, 2010 at 09:04:12AM -0400, Tom spot Callaway wrote:
 On 10/30/2010 06:01 AM, Richard W.M. Jones wrote:
  On Sat, Oct 30, 2010 at 02:24:02AM -0400, Jon Stanley wrote:
  I noticed on my Fedora 13 box that in the RPM macro %__global_cflags
  that -frecord-gcc-switches is missing, which is a nifty compiler
  feature that will record the flags passed to gcc in a section in the
  object file, thus aiding in the how in the world was this compiled?
  problem. An example:
 
  [jstan...@hawtness ~]$ gcc -O2 -frecord-gcc-switches -g -o hello hello.c
  [jstan...@hawtness ~]$ readelf -p .GCC.command.line hello
 
  String dump of section '.GCC.command.line':
[ 0]  hello.c
[ 8]  -mtune=generic
[17]  -g
[1a]  -O2
[1e]  -frecord-gcc-switches
 
  What do folks think about adding this as a default? Any reason not to
  (other than possibly a few bytes extra in the object files)?
  
  +1
  
  I think would also catch those cases where some gcc flag is found to
  break code generation.  You reasonably see which binaries were
  affected.
 
 I agree. Unless there is a notable performance cost in this, I say we
 should go for it.

-frecord-gcc-switches is unfortunately pretty much useless, see
http://gcc.gnu.org/PR32998.  Please don't add it, we want something actually
usable, not this option.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Compile with -fno-omit-frame-pointer on x86_64?

2010-11-03 Thread Jakub Jelinek
On Wed, Nov 03, 2010 at 02:48:12PM -0400, Owen Taylor wrote:
 Lack of decent profiling is a major problem for making our operating
 system fast. By far the most effective of profiling is sampling profile
 with callgraph information.
 
 Soeren's comment from March:
 
  http://lwn.net/Articles/380582/
 
 Basically summarizes the situation, and as far as I know nothing has
 changed ... with default compilation options, getting callgraph
 profiling on x86_64 really requires a DWARF unwinder in the kernel.
 Which seems unlikely to happen.

But that's the right thing to do.

 As a developer, your options for profiling are:
 
  - Recompile everything you care about profiling 
with -fno-omit-frame-pointer instead of using system packages.

Instead of this, which really is a big performance penalty.  Even i?86 is
changing in GCC 4.6 to not do -fno-omit-frame-pointer by default.
The unwind info recent GCCs provide is correct even in epilogues and can be
relied upon.  There are several lightweight unwinders that can be easily
adapted for kernel purposes.  Just talk to the systemtap folks.

There is always callgrind if you don't want to recompile anything and
need to profile something even when kernel doesn't support it.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Compile with -fno-omit-frame-pointer on x86_64?

2010-11-03 Thread Jakub Jelinek
On Wed, Nov 03, 2010 at 03:20:59PM -0400, Owen Taylor wrote:
 On Wed, 2010-11-03 at 19:58 +0100, Jakub Jelinek wrote:
  On Wed, Nov 03, 2010 at 02:48:12PM -0400, Owen Taylor wrote:

  Instead of this, which really is a big performance penalty. 
 
 Do you have a sense of the quantification of big here? I know in
 compiler terms, 1% is big, but we're no where close to wringing the last
 1% out of overall Fedora performance. If you create a sufficiently
 complex system, there's lots of stupid stuff going on. And you can't
 find the stupid stuff without appropriate tools.

The last numbers I was pointed at for x86_64 were 4% slowdown, which
really is a lot and it takes several years to achieve that improvement on the
compiler side.

 It seems like if it was that easy, it would have happened and we'd have
 a solution in the upstream kernel...

I think we had one in the upstream kernel for some time, then Linus just
didn't like to see it needing too many bugfixes needed for it and nuked it.

 (One thing that definitely makes things tricky is paging in debuginfo. I
 think I saw a discussion somewhere that systemtap preemptively was
 paging in all debuginfo for traced modules. That's tricky in systemwide

Yeah, systemtap does that (and has that in kernel unwinder for userspace).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Compile with -fno-omit-frame-pointer on x86_64?

2010-11-03 Thread Jakub Jelinek
On Wed, Nov 03, 2010 at 04:10:30PM -0400, Adam Jackson wrote:
 On Wed, 2010-11-03 at 19:58 +0100, Jakub Jelinek wrote:
  On Wed, Nov 03, 2010 at 02:48:12PM -0400, Owen Taylor wrote:
   Basically summarizes the situation, and as far as I know nothing has
   changed ... with default compilation options, getting callgraph
   profiling on x86_64 really requires a DWARF unwinder in the kernel.
   Which seems unlikely to happen.
  
  But that's the right thing to do.
 
 Sure, but so is a kernel debugger, and it's taken us over ten years to
 get one.  I'm pretty okay with doing something wrong now if it gets me
 something usable for long enough to get something right later.  I'll
 take 4% across the board if it helps me find the 20% that matters.

Most of the time you don't find the 20% improvements with profilers though,
so all we end up with is just slowing everything by 4%.  Definitely a bad
idea, now that per core performance doesn't increase very much and most
programs aren't parallelized at all or just very badly.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Backporting LLVM 3.1 for Fedora 17

2012-11-16 Thread Jakub Jelinek
On Fri, Nov 16, 2012 at 09:49:19AM -0500, Adam Jackson wrote:
 That said, llvm consumers are difficult to keep in sync with llvm
 anyway.  Many llvm projects seem like they pick a point release to build
 against and then never get updated when the ABI changes.  If we do this
 we might want to start by building compat-llvm30 for the libraries and
 migrating the consumers independently afterwards.  It'd be fine if that
 compat package only lived for the one release that needs it (ie no
 compat-llvm30 in F18 or later, apps that aren't ported get
 deadpackaged), but at least that way we could avoid breaking llvm apps
 in F17 updates that worked in F17 gold.

I guess for that it doesn't help that only one of the 4 llvm-libs
shared libraries (libLLVM-3.*.so) has the version in its name, the other
3 clearly dependent on that one don't, eventhough I very much doubt they
are anywhere close to be ABI compatible.
Not to mention that somebody should tell the LLVM folks about the ld -soname
option, none of those 4 have DT_SONAME.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Results of a test mass rebuild of rawhide/x86_64 with gcc-4.8.0-0.1.fc19

2013-01-04 Thread Jakub Jelinek
Hi!

As part of preparations for possible switch of system compiler in F19
to GCC 4.8.0, we (myself and Marek Polacek) have performed a test mass
rebuild of rawhide (December 17th package list) using gcc-4.8.0-0.1.fc19
on x86_64, and for those packages that failed also rebuilt the same
package with gcc-4.7.2-9.fc19 to quickly remove from the list packages
that fail for non-gcc related reasons.

11687 packages built fine, 933 packages failed to build with
both gcc-4.8.0-0.1.f19.x86_64.rpm and gcc-4.7.2-9.fc19.x86_64.rpm
(ignored for this analysis, unlikely to be gcc 4.8 related).

The remaining packages, that failed to build with 4.8.0-0.1
and succeeded with 4.7.2-9 are listed below.  67 of these look
like issues on the package side, 22 gcc bugs that were supposedly
fixed by now upstream and thus should be ok in 4.8.0-0.3 when
it is built next week and 3 are not yet fixed gcc issues.

CCing Benjamin if he is again interested in writing
http://gcc.gnu.org/gcc-4.8/porting_to.html and could find this
information useful.

Besides build failures, the -Wsizeof-pointer-memaccess
warning triggered in several packages that succeeded building,
but it would be nice if package maintainers actually checked those
and fixed up, most likely those are real package bugs.  The list of such
packages is included in first attachment.

For the more aggresive loop optimizations if the loop contain undefined
behavior, while it caused build failures just for 12 packages during the
mass rebuild, supposedly more packages will be affected, just the problems
weren't triggered during package build.  Usually such loops are either
turned into infinite loops that soon crash, or hang, or as can be seen
on the perl-PDL case loops can be turned into just conditional non-looping
code (e.g. when compiler assumes that it can validly loop just at most
once).

blktap-2.0.90-6.git20111216.62de90d.fc18.src.rpm
cdrkit-1.1.11-14.fc19.src.rpm
elfutils-0.155-1.fc19.src.rpm
isomd5sum-1.0.9-2.fc18.src.rpm
libopensync-plugin-opie-0.22-8.fc18.src.rpm
linphone-3.5.2-4.fc18.src.rpm
lldpad-0.9.45-3.fc19.src.rpm
openvas-libraries-5.0.4-1.fc19.src.rpm
pilot-link-0.12.5-13.fc18.src.rpm
sh-elf-binutils-2.21-5.fc19.src.rpm
packages built with -Werror, for which the new
-Wsizeof-pointer-memaccess warning included in -Wall warns
and -Werror makes a fatal error out of it

bamf-0.2.104-4.fc18.src.rpm
byzanz-0.3-0.5.fc17.src.rpm
fvkbd-0.2.2-6.fc18.src.rpm
gedit-collaboration-3.6.0-1.fc18.src.rpm
gtkimageview-1.6.4-6.fc18.src.rpm
gypsy-0.8-6.fc17.src.rpm
libindicator-0.4.94-3.fc18.src.rpm
ltrace-0.7.0-1.fc19.src.rpm
mail-notification-5.4-64.git.eab5c13.fc19.src.rpm
ModemManager-0.6.0.0-2.fc19.src.rpm
physfs-2.0.2-3.fc18.src.rpm
roboptim-core-0.5-6.fc18.src.rpm
v8-3.10.8-2.fc18.src.rpm
xen-4.2.0-6.fc19.src.rpm
packages built with -Werror, for which the new
-Wunused-local-typedefs warning included in -Wall warns
and -Werror makes a fatal error out of it

trafficserver-3.2.0-3.fc18.src.rpm
package built with -Werror, and -Wmaybe-uninitialized warns
about possibly uninitialized fields which are uninitialized
if inc_gmtime_r returns -1 (and ink_time_current_mdy doesn't
bother to check that return value)

armacycles-ad-0.2.8.3.2-3.fc18.src.rpm
irrlicht-1.8-1.fc19.src.rpm
kdevelop-4.4.1-2.fc19.src.rpm
kst-2.0.3-7.fc18.src.rpm
maildrop-2.5.0-17.fc18.src.rpm
megaglest-3.7.1-1.fc19.src.rpm
opal-3.10.9-2.fc19.src.rpm
oxygen-gtk2-1.3.1-1.fc19.src.rpm
oxygen-gtk3-1.1.1-2.fc19.src.rpm
supertuxkart-0.7.3-3.fc19.src.rpm
syncevolution-1.3.2-1.fc19.src.rpm
gcc bug - internal compiler error in inline_call,
fixed upstream already, see http://gcc.gnu.org/PR55683

pari-2.5.3-1.fc19.src.rpm
gcc bug - internal compiler error in LRA,
fixed upstream already, see http://gcc.gnu.org/PR55775

avrdude-5.11.1-2.fc18.src.rpm
gcc bug - internal compiler error in remove_redundant_iv_tests,
fixed upstream already, see http://gcc.gnu.org/PR55684

openttd-1.2.2-1.fc19.src.rpm
gcc bug - the package is built with LTO, and the problem
is extremely hard to reduce, just rebuild without --with-lto
for now

b43-openfwwf-5.2-8.fc18.src.rpm
ccache-3.1.8-1.fc18.src.rpm
openchange-1.0-12.fc19.src.rpm
openttd-opengfx-0.4.5-1.fc19.src.rpm
samba-4.0.0-171.fc19.rc6.src.rpm
/usr/include/stdc-predef.h issues
gcc preprocessor now in C/C++ modes automatically includes
stdc-predef.h header, packages which are using preprocessor
for non-C/C++ code or doing weird things with the preprocessor
might run into issues.  For non-C/C++ code, it is always better
to preprocess as assembly instead of C

libxc-1.2.0-2.fc18.src.rpm
/usr/include/stdc-predef.h issues - using cpp -C -ansi to preprocess
Fortran sources is simply a very bad idea

adobe-source-libraries-1.0.43-13.fc19.src.rpm
asl-gcc.patch patch needs to be 

Re: Results of a test mass rebuild of rawhide/x86_64 with gcc-4.8.0-0.1.fc19

2013-01-04 Thread Jakub Jelinek
On Fri, Jan 04, 2013 at 04:41:45PM -0500, Adam Jackson wrote:
 Thanks for this!  One question...
 
 On Fri, 2013-01-04 at 21:40 +0100, Jakub Jelinek wrote:
 
  llvm-3.1-12.fc19.src.rpm
  gcc bug, not fixed yet, see http://gcc.gnu.org/PR55875
 
 My reading of that bug is that -fno-ivopts could be a workaround?  Worse
 code, but if my options are that and no llvm builds...

Yes, but the other option is that the bug is just going to be fixed.
It is a P1 bug, so a release blocker, after all.

The real mass rebuild won't happen next week...

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Results of a test mass rebuild of rawhide/x86_64 with gcc-4.8.0-0.1.fc19

2013-01-07 Thread Jakub Jelinek
On Mon, Jan 07, 2013 at 03:50:01PM +, Petr Pisar wrote:
  yap-6.2.2-4.fc18.src.rpm
  similar to getdata bug:
  LAST_FLAG = 23
  ...
  #define NUMBER_OF_YAP_FLAGS  LAST_FLAG
  ...
  #define yap_flags Yap_heap_regs-yap_flags_field
  ...
  Int  yap_flags_field[NUMBER_OF_YAP_FLAGS];
  ...
  /* This must be done before initialising predicates */
  for (i = 0; i = LAST_FLAG; i++) {
yap_flags[i] = 0;
  }
 
 What's wrong with assigning 0 that fits into any intenger? C99 says:
 
   6.3.1.3 Signed and unsigned integers
   1 When a value with integer type is converted to another integer type
 other than _Bool, if the value can be represented by the new type,
 it is unchanged.
 
 The pre-precessed code is:
 
   for (i = 0; i = LAST_FLAG; i++) {
 ((all_heap_codes *)(0x1000))-yap_flags_field[i] = 0;
   }
 
 Type of yap_flags_field is int[].

That's not correct, type of yap_flags_field is int[NUMBER_OF_YAP_FLAGS]
aka int[LAST_FLAG].  The undefined behavior happens in the last iteration,
where you do
  ((all_heap_codes *)(0x1000))-yap_flags_field[LAST_FLAG] = 0;
ISO C99 6.5.2.1 says that this is equivalent to:
  (*all_heap_codes *)(0x1000))-yap_flags_field)+(LAST_FLAG))) = 0;
and then 6.5.6/8 (last sentence) applies:
If the result points one past the last element of the array object, it
shall not be used as the operand of a unary * operator that is evaluated.

Note the array is in a middle of a structure, not at the end, where is the
only place where flexible array members could be present and as an extension
GCC allows even non-flexible arrays to be treated similarly to flexible
arrays (case where people use say struct S { ...; int a[1]; }; as some kind
of pre-C99 flexible array members).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Results of a test mass rebuild of rawhide/x86_64 with gcc-4.8.0-0.1.fc19

2013-01-14 Thread Jakub Jelinek
On Mon, Jan 14, 2013 at 06:08:21PM +0200, Ville Skyttä wrote:
 On 2013-01-04 22:40, Jakub Jelinek wrote:
 
  gcc-4.8.0-0.1.fc19 on x86_64
 
 I see this in git, but not even a scratch build in koji. Is a build of
 the 4.8.0 gcc and friends available somewhere? What about the build logs
 of the failed packages?

-0.1 isn't in git nor scratch (wasn't ever in git, the scratch build has
been deleted automatically long time ago already).
In git there is -0.3, with
http://koji.fedoraproject.org/scratch/jakub/task_4843433/
scratch build until it is deleted.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Results of a test mass rebuild of rawhide/x86_64 with gcc-4.8.0-0.1.fc19

2013-01-14 Thread Jakub Jelinek
On Mon, Jan 14, 2013 at 11:32:09AM -0500, Dave Jones wrote:
 On Fri, Jan 04, 2013 at 09:40:27PM +0100, Jakub Jelinek wrote:
   The remaining packages, that failed to build with 4.8.0-0.1
   and succeeded with 4.7.2-9 are listed below.  67 of these look
   like issues on the package side, 22 gcc bugs that were supposedly
   fixed by now upstream and thus should be ok in 4.8.0-0.3 when
   it is built next week and 3 are not yet fixed gcc issues.
 
 I'm pleasantly surprised that the kernel isn't in the failure list.
 No issues at all ? Or was it skipped for some reason ?

Kernel built.  I haven't tried to boot it though, for all packages
it was just a test whether packages build (which includes fatal testsuite
failures for tests they perform during the build).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Shall we modify '-g' to '-g3' to have gcc save the macro info?

2013-01-16 Thread Jakub Jelinek
On Wed, Jan 16, 2013 at 02:26:00PM +0100, Jan Kratochvil wrote:
 On Wed, 16 Jan 2013 04:12:29 +0100, xning wrote:
  Shall we should modify '-g' to '-g3' to have gcc save the macro
  info? So when we install *-debuginfo packages, we can look up a
  macro definition, just like we can look up a function definition.
 
 That would be great, I have not found any official request for it, there was
 only short -g3 discussion in:
   Summary/Minutes from today's FESCo Meeting (2012-06-18)
   http://lists.fedoraproject.org/pipermail/devel/2012-June/168884.html
 
 The new -g3 format by Jakub Jelinek has only very small debug info size
 increase requirement (FIXME: missing numbers here).

The tests performed on average meant that all or most of the space savings
thanks to dwz were consumed again by the .debug_macro addition (+ .debug_str
growth), which is why I've given up on the request to use -g3 in
RPM_OPT_FLAGS by default.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F19 Feature: GCC48 - switch GCC in Fedora 19 to 4.8.x, rebuild all packages with it

2013-01-16 Thread Jakub Jelinek
On Wed, Jan 16, 2013 at 08:21:24PM +0100, Tomas Mraz wrote:
 On Wed, 2013-01-16 at 14:15 -0500, Matthew Miller wrote: 
   GCC 4.8.0 is going to be released in mid March to mid April and is 
   currently 
   in regression bugfix only mode. I've performed a test mass rebuild on 
   x86_64 
  
  Looking at the schedule Wouldn't it be better to do the mass rebuild in
  Rawhide before the branch?
  
  If we're really looking at a second-half-of-May final release, that means
  beta testing ends the beginning of May, which possibly puts the window for
  the rebuild _after_ the beta release (let alone before the branch).
  
  If we're going to have a short F19 cycle, maybe this should be accepted now
  for F20 and happen in Rawhide after the branch. Or, if the F19 cycle is to
  be longer, maybe that's not an issue.
  
  Unless we're really confident that this won't cause problems.
 
 I'd say that if FESCo accepts this feature for F19, it implicates making
 the F19 schedule long enough to accommodate the rebuild before
 branching.

If this is decided upon soon, the gcc packages could be ready for a mass
rebuild around end of January or even slightly earlier.
The package is in git right now, but so far built just as scratch builds.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F19 Feature: GCC48 - switch GCC in Fedora 19 to 4.8.x, rebuild all packages with it

2013-01-16 Thread Jakub Jelinek
On Wed, Jan 16, 2013 at 11:52:04AM -0800, Brendan Conoboy wrote:
 On 01/16/2013 11:19 AM, Kevin Fenzi wrote:
 We need to decide the schedule soon IMHO.
 
 Perhaps the schedule should be decided in part on time to do mass
 rebuild after gcc 4.8.0 is released.  The ARM team would really like
 to see 4.8 in F19 because 4.8 is the first gcc with native Aarch64
 support.

The mass rebuild doesn't have to be with a released compiler (and in fact,
usually has been performed with a prerelease compiler), it is just
important that the release is released with a released compiler.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F19 Feature: GCC48 - switch GCC in Fedora 19 to 4.8.x, rebuild all packages with it

2013-01-16 Thread Jakub Jelinek
On Wed, Jan 16, 2013 at 12:38:29PM -0800, Brendan Conoboy wrote:
 Even better!  Will the 3 failed builds mentioned at the beginning of
 the thread be resolved by the end-of-January estimated ready to go
 time? Are there any outstanding bugs in the 4.8-pre compiler that
 might have major impact on Fedora?  If gcc 4.8 has progressed to the
 point that it's safe to use I'd love to see it done in F19.

Two of the issues are resolved already, one (--with-lto issue in some game)
probably not, but so difficult to reduce that it is probably better to
suggest not using LTO there for now.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F19 Feature: GCC48 - switch GCC in Fedora 19 to 4.8.x, rebuild all packages with it

2013-01-17 Thread Jakub Jelinek
On Thu, Jan 17, 2013 at 12:45:04PM +0100, Nikola Pajkovsky wrote:
 is gcc bug[1] fixed in 4.8.0? it could bring a lot of nasty problems
 with app which using atomit_t (unsigned long)
 
 [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55981

I think it isn't yet committed, has been approved though.
Not sure why do you mention it though, 4.7.x has the same bug
(and older gcc's didn't have __atomic_store{,_n} builtins),
so if some code in Fedora hits that issue, it already has that problem in
F17/F18.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Odd Problems to build inn on rawhide

2013-01-17 Thread Jakub Jelinek
On Thu, Jan 17, 2013 at 02:30:09PM +0100, Jochen Schmitt wrote:
 Hallo,
 
 during my last build of inn on rawhide I have got the following odd
 error messages:
 
 RPM build errors:
 bogus date in %changelog: Wed Jan 13 2009 Ondrej Vasik 
 ova...@redhat.com - 2.4.5-7
 bogus date in %changelog: Fri Jul  7 2008 Ondrej Vasik 
 ova...@redhat.com - 2.4.5-2
 bogus date in %changelog: Sun Jul 10 2000 Bill Nottingham 
 nott...@redhat.com
 Can't mix special %doc with other forms: samples
 
 It may be nice, if anyone may have some hints to
 solve this issue.

date -d 'Jan 13 2009'; date -d 'Jul  7 2008'; date -d 'Jul 10 2000'
Tue Jan 13 00:00:00 CET 2009
Mon Jul  7 00:00:00 CEST 2008
Mon Jul 10 00:00:00 CEST 2000

so, either the days of the week or dates are wrong in the ChangeLog.

No idea about the last message.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F19 Feature: GCC48 - switch GCC in Fedora 19 to 4.8.x, rebuild all packages with it

2013-01-22 Thread Jakub Jelinek
On Tue, Jan 22, 2013 at 09:22:00PM +0100, Erik van Pienbroek wrote:
 Jaroslav Reznik schreef op wo 16-01-2013 om 12:35 [-0500]:
  See 
  https://lists.fedoraproject.org/pipermail/devel/2013-January/175876.html 
  for details. Once gcc-4.8.0-* is built into Fedora, after a few days or 
  weeks
  a mass rebuild should be performed. 
 
 I see that gcc 4.8 was just imported in rawhide some hours ago. What's
 the plan next? Will the rebuilds happen in a side-tag or in the master

It hasn't been imported into rawhide yet, it was just built (first two
non-scratch builds) and (almost) immediately untagged, just so that before
tomorrow's FeSCo meeting there are packages already available and ready to
be tagged into f19 instantly.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F19 Feature: MEMSTOMP

2013-01-24 Thread Jakub Jelinek
On Thu, Jan 24, 2013 at 01:29:36PM -0500, Bill Nottingham wrote:
 Jaroslav Reznik (jrez...@redhat.com) said: 
  = Features/MEMSTOMP =
  https://fedoraproject.org/wiki/Features/MEMSTOMP
  
  Feature owner(s): Jeff Law l...@redhat.com
  
  Include the MEMSTOMP DSOs in Fedora 19 to enable developers to more quickly 
  detect certain library calls which result in undefined behaviour due to 
  overlapping memory arguments.
  
  == Detailed description ==
  MEMSTOMP is a DSO which can be preloaded by an application to detect calls 
  to 
  library routines with overlapping memory arguments. Specifically MEMSTOMP 
  will 
  detect calls to the following routines with overalapping memory arguments:
  
  [w]memcpy, str[n]cat, wcs[n]cat, str[n]cpy, wcs[n]cpy, [w]mempcpy, memccpy, 
  stp[n]cpy
  
  While valgrind can detect these cases, using a DSO such as MEMSTOMP can be 
  significantly faster.
  
  The MEMSTOMP code utilizes GPLV2+ and LGPL3 code. The GPLV2+ code is 
  limited 
  to the backtrace code which is not thread safe and may need to be 
  disabled/rewritten. 
 
 I assume this could be done as a system-wide LD_PRELOAD if desired?

If all multiarch versions are installed, yeah, you could put
/usr/$LIB/memstomp.so
into /etc/ld.so.preload

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F19 Feature: GLIBC 2.17

2013-01-29 Thread Jakub Jelinek
On Tue, Jan 29, 2013 at 10:39:21AM +0100, Florian Weimer wrote:
 On 01/28/2013 06:31 PM, Bill Nottingham wrote:
 Florian Weimer (fwei...@redhat.com) said:
 See http://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv
 for code snippets to implement in the change in a
 backwards-compatible fashion.  Unfortunately, glibc upstream
 insistent on renaming before making the symbol official.
 
 I'm a little confused by the 'unfortunately' here - if apps are using a
 private symbol, they should expect that they may need to change later.
 
 Precisely because it's in the private namespace, glibc could just
 have documented the existing __secure_getenv symbol.  It's not that
 there aren't any public functions starting with __.  But this was
 rejected by upstream, and now we have the __secure_getenv
 compatibility symbol (not usable for fresh linking), secure_getenv,
 and __libc_secure_getenv for internal glibc use (but which is still
 public for technical reasons).

A @@GLIBC_PRIVATE symbol is not public.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F19 Feature: systemd features

2013-01-30 Thread Jakub Jelinek
On Wed, Jan 30, 2013 at 07:18:40PM +0100, Tomas Mraz wrote:
  The point is, we've done this in the past where we shipped the data with
  the tools, and we very quickly moved to shipping the data separate - it's
  cleaner, allows for just updating the data when necessary, and it forces
  people to keep their API  ABI for accessing it stable. :)
 
 +1 million - another data point - ca-certificates package - it was much
 cleaner to split it out of openssl.

Ditto splitting of timezone data from glibc-common to tzdata.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: LD Changes To Implicit DSO Linking Update

2010-02-09 Thread Jakub Jelinek
On Tue, Feb 09, 2010 at 11:09:50PM +0530, Parag N(पराग़) wrote:
  Anyway I find adding missing DSO to CFLAGS in SPEC is easy solution for now.

They don't belong to CFLAGS, those are flags for compilation.  You want
LDFLAGS or even better add it in configure to LIBS.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: LD Changes To Implicit DSO Linking Update

2010-02-09 Thread Jakub Jelinek
On Tue, Feb 09, 2010 at 07:42:44PM +0100, Kevin Kofler wrote:
 Adam Williamson wrote:
  I disagree with that. Previous changes to the build environment - even
  upstream GCC changes - have broken way more packages (every GCC .x
  release tends to break a lot of things temporarily).
 
 And that's something which really irks me about GCC upstream, they don't 
 seem to understand what backwards compatibility means. That doesn't mean 
 it's a good idea to break code like this.

You are probably looking for bug compatibility, and that isn't something
GCC guarantees, definitely not between major versions.

The C/C++ standards (and standards governing the extensions to the
languages) is what matters, if you write standard conforming code, GCC won't
(intentionally) start rejecting it.  But if you have code that happens to
compile because of some GCC bug, eventhough it was invalid, or some C/C++
defect report clarifies some corner case, you need to be prepared to fix up
your code.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: LD Changes To Implicit DSO Linking Update

2010-02-16 Thread Jakub Jelinek
On Tue, Feb 16, 2010 at 03:57:52PM +0100, Gerd Hoffmann wrote:
 Well.  Even pretty fundamental GNOME stuff like gtk2-devel is still 
 broken.  Look here:
 
 [r...@localhost ~]# pkg-config --libs gtk+-2.0
 -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 
 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype 
 -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
 
 -lX11 is missing (at least, maybe more).  Any gtk app using pkg-config 
 to figure which libraries are required fails to build now.

Only if the library you are compiling actually uses any libX11 APIs.
If it only uses APIs from the named libraries, it will link fine.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: gcc internal error on F13

2010-03-06 Thread Jakub Jelinek
On Sat, Mar 06, 2010 at 08:44:13AM -0500, Sam Varshavchik wrote:
 Paulo Cavalcanti writes:
 
 « HTML content follows »
 I am trying to build a package on F13, and got a gcc internal error:
 
 
 URL:http://koji.fedoraproject.org/koji/taskinfo?taskID=2034791http://koji
 .fedoraproject.org/koji/taskinfo?taskID=2034791
 
 
 I have no idea how to proceed 
 
 Create a bug against gcc. Given that the bug is preventing a package
 build, it should be a high priority bug to fix.

Well, in this case it is not clear whether it is a gcc bug.  gcc was OOM killed
by the kernel, whether it is a gcc bug or not depends on whether gcc uses
way too much memory compared to how complicated/large the source is.
The OOM could be very well caused by some other memory demanding build going
on at the same time on the same build box.  So, first try to build it again,
and only if it fails on the same file again, preprare a preprocessed source
and file a bug against gcc.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Announcing `gold-rebuild' - link your packages with gold now

2010-03-08 Thread Jakub Jelinek
On Mon, Mar 08, 2010 at 09:24:29AM -0500, Frank Ch. Eigler wrote:
 Michal Nowak mno...@redhat.com writes:
 
  Past months I spent investigating `gold' - the new GNU linker
  and how it now works with stock Fedora packages.
  [...]
 
 Do your scripts provide some evidence of exciting speedups with gold?

Or slowdowns?

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: does mc really require perl*?

2013-09-20 Thread Jakub Jelinek
On Fri, Sep 20, 2013 at 08:37:50PM +0200, Reindl Harald wrote:
 well, some people would now say i do
 the same i can say for sure to some other pakcages on a cloud server where
 they would disagree and because everybody has different needs keep the
 dependency chain as small as possible is always a good idea for a lot
 of reasons and save ressources is generally a good idea even if most of
 the young devlelopers never learned how to develop tiny, bugfree and
 stable software - the results are well known

But for the mc dependency on perl, I'd say it is very reasonable one to have, 
because
otherwise none of the extfs will really work, that is something used pretty
frequently in mc.  Of course unless you are prepared to rewrite all the
scripts into awk, plain sh or something that will require smaller footprint.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: F20 System Wide Change: ARM as primary Architecture

2013-10-15 Thread Jakub Jelinek
On Tue, Oct 15, 2013 at 02:16:28PM -0400, Carlos O'Donell wrote:
 There is no effective security difference between accessing the randomized
 stack guard value from a global variable or a value stored in the dynamic
 thread vector.
 
 It is only a performance optimization. The choice of a global variable vs. 
 DTV offset has only to do with the speed of access of the stack guard.

DTV access is of course going to be expensive, after all, that is a function
call, the question was about reserving a word at fixed constant offset from
the TLS base and how expensive that is vs. global variable access.
For soft FP I guess global variable access must win, for -mtp=cp15
]it depends on how fast the mrc instruction is.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: libtool broken in Koji F19 buildroot?

2013-10-17 Thread Jakub Jelinek
On Thu, Oct 17, 2013 at 07:38:59PM +0100, Richard W.M. Jones wrote:
 
 While preparing the buildroot, Koji is saying:
 
 DEBUG util.py:266:  Error: Package: libtool-2.4.2-16.fc19.x86_64 (build)
 DEBUG util.py:266: Requires: gcc = 4.8.1
 DEBUG util.py:266: Installed: gcc-4.8.2-1.fc19.x86_64 
 (@build/$releasever)
 DEBUG util.py:266: gcc = 4.8.2-1.fc19
 
 (Full log:
 http://kojipkgs.fedoraproject.org//work/tasks/2021/6072021/root.log )

That is a temporary measure, for the F19 gcc errata I need to rebuild
various packages which unfortunately hardcode hard dependency on gcc
%{version} (gcc-python-plugin, libtool, llvm, dragonegg).  I have the first
two built now, third is building, 4th I need ACLs for or wait for the owner
to build.  Once that is done, gcc 4.8.2 buildroot override will be expired
again.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: FTBFS if -Werror=format-security flag is used

2013-12-04 Thread Jakub Jelinek
On Wed, Dec 04, 2013 at 05:11:16PM -0600, Ian Pilcher wrote:
 On 12/04/2013 04:56 PM, Brendan Jones wrote:
  Patching is not a problem. Unnecessary is the question. Explain to me
  (not you in particular Rahul) how these printf's can possibly be exploited?
 
   char *output;
 
   output = get_user_input(...);
   printf(output);
 
 What happens when the user enters %n?

With -D_FORTIFY_SOURCE=2 the program is aborted, unless the string resides
in read-only memory ;)

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: FTBFS if -Werror=format-security flag is used

2013-12-06 Thread Jakub Jelinek
On Fri, Dec 06, 2013 at 08:02:06PM +0100, Kevin Kofler wrote:
 * translatable format strings, e.g.
   printf(translate(processed %d items), foo);

Translatable strings are handled just fine.
Try e.g.:

extern int my_printf (void *my_object, const char *my_format, ...)
  __attribute__ ((format (printf, 2, 3)));
extern char *my_dgettext (char *my_domain, const char *my_format)
  __attribute__ ((format_arg (2)));

void *p; char *q;
void
foo ()
{
  my_printf (p, my_dgettext (q, abcd));
}

e.g. libintl.h already uses the right attributes, so you don't
get errors for this.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: FTBFS if -Werror=format-security flag is used

2013-12-09 Thread Jakub Jelinek
On Mon, Dec 09, 2013 at 03:01:55PM -0800, Les Howell wrote:
 unless something has  changed recently fputs and puts just like gets and
 fgets have been deprecated and are discouraged due to potential security
 issues.

That is wrong.  Only gets is deprecated (removed in C11, obsolescent in
POSIX 2008, etc.), because it fills in a buffer without telling the library
the size of the buffer, so it is pretty much always a security issue to use
gets.  All other functions you've listed aren't deprecated at all.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: missing on bodhi: gcc-c++-4.8.2-5.fc19.x86_64

2013-12-11 Thread Jakub Jelinek
On Wed, Dec 11, 2013 at 05:42:16PM +0100, Reindl Harald wrote:
 http://koji.fedoraproject.org/koji/buildinfo?buildID=483733
 
 [root@testserver:~]$ rpm -qa | grep gcc
 gcc-c++-4.8.2-5.fc19.x86_64
 libgcc-4.8.2-5.fc19.x86_64
 gcc-4.8.2-5.fc19.x86_64
 
 are these packages are missing on bodhi?
 http://bodhi.fedoraproject.org/
 
 i would like to give positive karma after build MariaDB, Apache, PHP
 and VMware-Workstation kernel-modules succesful with it

Please see http://gcc.gnu.org/PR59470, gcc-4.8.2-5 shouldn't be added.
I'm debugging it right now, worst case I'll revert the offending commit
if there is no fix available soon.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Re: Fixing the glibc adobe flash incompatibility

2010-11-18 Thread Jakub Jelinek
On Thu, Nov 18, 2010 at 10:14:58AM +, Andrew Haley wrote:
 On 11/17/2010 11:42 PM, Kevin Kofler wrote:
 How is any of that a reason not to patch glibc?
 
 Upside of patching: happy users.
 Downside: nothing.

Downside: slower memcpy on sse4.2 machines
Downside: if we workaround the Adobe flash bug by reverting that change for
  say half a year to let Adobe fix it in the months timeframe,
  another possible misuses of memcpy in other proprietary closed 
software
  won't be detected over that period of time, so then we'll revert
  it for another buggy program and so on forever
Downside: this isn't ever going to be acceptable to upstream

If you want to workaround the bug somewhere, do it temporarily in 
nspluginwrapper,
or the browser upon detecting loading of libflashplugin.so.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Fixing the glibc adobe flash incompatibility

2010-11-18 Thread Jakub Jelinek
On Thu, Nov 18, 2010 at 10:09:56AM -0500, Genes MailLists wrote:
 On 11/18/2010 09:28 AM, Jakub Jelinek wrote:
  Downside: nothing.
  
  Downside: slower memcpy on sse4.2 machines
 
   Do you know how much slower in absolute time is it?
 
   And is it (or would it be) visible (1/10's of seconds) or invisible
 (ms) in some typical (or atypical) apps that call memcpy() ... ?

Depends on the application, but certainly memcpy is one of the most
performance critical functions, it is used basically everywhere and heavily
so, I've very often see it very high in oprofile dumps etc.  For memcpy both
performance with very small length is criticial (most programs call memcpy
with small lengths) but many apps also copy large memory blocks around (which
is where SSE*, nontemporal stores etc. play role).  E.g. the latter measurably
shows up on SPEC2k/SPEC2k6.

It is very sad that Intel/AMD just didn't make sure rep movsb
isn't the fastest copying sequence on all of their CPUs,
which underneath could do whatever magic based on size and src/dst
alignment (e.g. for small length handle it in hw so it is as quick as
possible, for larger sizes perhaps handle it in microcode) - rep movsb
can be easily inlined and is quite short as well.  But on many, especially 
recent, CPUs it performs very badly compared to these much larger SSE* optimized
routines.

If you want exact numbers, best ask Intel folks who wrote and tuned the
SSE4.2 memcpy routine.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Fixing the glibc adobe flash incompatibility

2010-11-18 Thread Jakub Jelinek
On Thu, Nov 18, 2010 at 04:39:40PM +0100, Magnus Glantz wrote:
 So..
 Upside of patching: happy users :-)
 Downside of patching: unhappy developers :-(

and unhappy users because their software runs slower, apparently you've
(intentionally?) missed that.  There is absolutely no reason to punish all
sanely written apps for one badly written proprietary one.  As I said
earlier, if you can't live without the proprietary blob and for whatever
reason can't just use the 32-bit one using nspluginwrapper (as 64-bit one is
not in a yum repository using the 64-bit one is a security risk, because
very few people will keep tracking new versions of it, downloading them as
tarball and installing them), let's do the workarounds in nspluginwrapper or
browser for libflashplayer.so only, not in glibc where it will affect all
apps.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Package rebuilds for gcc bug https://bugzilla.redhat.com/show_bug.cgi?id=634757

2010-11-23 Thread Jakub Jelinek
On Tue, Nov 23, 2010 at 03:45:26PM -0800, Jesse Keating wrote:
 gcc - update in -candidate, ping jakub

Just remove gcc from your list.  gcc is bootstrapped, so
the installed gcc only builds first stage, everything else
is built by (one of the) newly built compiler(s).
So, gcc in f14 surely doesn't have that problem in it.

I'll eventually do a f14 gcc errata, but only when I accumulate more
fixes...

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: GCC bug 634757 F14 rebuild status

2010-12-01 Thread Jakub Jelinek
On Thu, Dec 02, 2010 at 12:03:42AM -0500, Matt McCutchen wrote:
 On Wed, 2010-12-01 at 20:29 -0600, Dennis Gilmore wrote:
  /usr/bin/install -c -m 644 'doc/examples/runExample.sh' 
 '/builddir/build/BUILDROOT/libgnome-java-2.12.7-2.fc14.1.i386/usr/share/doc/libgnome-java-2.12.7/examples/runExample.sh'
  /usr/bin/install -c 'doc/examples/runExample.sh' 
 '/builddir/build/BUILDROOT/libgnome-java-2.12.7-2.fc14.1.i386/usr/share/doc/libgnome-java-2.12.7/examples/runExample.sh'
 ...
 /usr/bin/install: cannot create regular file 
 `/builddir/build/BUILDROOT/libgnome-java-2.12.7-2.fc14.1.i386/usr/share/doc/libgnome-java-2.12.7/examples/runExample.sh':
  File exists

 When this succeeds, the permissions are unpredictably 644 or 755.
 
 The solution: patch the package to not do that, or just try again and
 hope you get lucky.

Or don't use %{_smp_mflags} for make install, just for make.
Parallelized make install doesn't work for many packages, and doesn't buy
much anyway.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Go frontend, GCC 4.6, F15

2010-12-05 Thread Jakub Jelinek
On Fri, Dec 03, 2010 at 08:28:20PM +0200, Albert Strasheim wrote:
 The Go frontend has been committed to GCC trunk:
 
 http://gcc.gnu.org/ml/gcc/2010-12/msg00117.html
 
 I checked the wiki, but there doesn't seem to be any mention of GCC
 4.6 on the F15 feature list:
 
 http://fedoraproject.org/wiki/Releases/15/FeatureList
 
 Does anybody have any idea on the plans for GCC 4.6 and F15, and what
 kind of work would have to be done to get the Go frontend included?

Our goal is to have GCC 4.6 as the system compiler in F15, we're currently
working hard upstream bugfixing and stabilizing it.  I'll write a F15
feature page soon.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Removing -fexceptions from $RPM_OPT_FLAGS

2011-01-18 Thread Jakub Jelinek
On Tue, Jan 18, 2011 at 06:08:37PM -0500, Frank Ch. Eigler wrote:
 -fexception allows a C library to participate in C++ exception
 handling.  It does not cost anything except extra data tables in the
 ELF file.  Its presence matters in cases where a C library is used by
 a C++ program, for example where the library may make a callback into
 the C++ program, and that callback might throw an exception.  With
 -fexception, that exception will be propagated properly through the C
 library, to the outermost application.  Without it, exceptions thrown
 from a callback may abort the program, even if the overall application
 wanted to catch it.

-fexceptions is also desirable for POSIX thread cancellation.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: heads-up: systemtap-sdt-devel rebase in rawhide

2011-01-19 Thread Jakub Jelinek
On Wed, Jan 19, 2011 at 03:52:24PM +, Mark Wielaard wrote:
 Dan Horák dan at danny.cz writes:
  there is some clash in min/max macros/functions, but I've not done any
  detailed investigation yet, Tom has been notified.
 
 I asked Stan Cox, who said he was using the following workaround:

I guess you could just make sure limits is included #ifdef __cplusplus
before including whatever header defines these max/min macros (or in it
before the definition).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: heads-up: systemtap-sdt-devel rebase in rawhide

2011-01-19 Thread Jakub Jelinek
On Wed, Jan 19, 2011 at 04:49:04PM -0500, Frank Ch. Eigler wrote:
 
 tgl wrote:
 
  [...]  I think the only near-term fix is to turn off dtrace support
  in mysql.  [...]
 
 We'll do one better; we'll add a hack to sys/sdt.h to make mysql build
 and respin systemtap today or tomorrow.
 
  But the real issue here is that systemtap has got to be more chary of
  what they expose into application namespace, or this same scenario is
  going to be played out again and again.
 
 I agree.  It's not a great situation, but local GCC/C++ experts have
 found no better way to type-analyze the parameters, to ensure their
 safe passage to the tool.  (Our testing shows limits is not
 offensive to other C++ apps we've seen.)

If you really want to avoid #include limits in sys/sdt.h, you can, e.g. by 
using

templatetypename __sdt_T
struct __sdt_type
{
  static const bool __sdt_signed = false;
};
  
#define __SDT_ALWAYS_SIGNED(T) \
template struct __sdt_typeT { static const bool __sdt_signed = true; };
#define __SDT_COND_SIGNED(T) \
template struct __sdt_typeT { static const bool __sdt_signed = ((T)(-1)  
0); };
__SDT_ALWAYS_SIGNED(signed char)
__SDT_ALWAYS_SIGNED(short)  
__SDT_ALWAYS_SIGNED(int)
__SDT_ALWAYS_SIGNED(long)
__SDT_ALWAYS_SIGNED(long long)
__SDT_COND_SIGNED(char)  
__SDT_COND_SIGNED(wchar_t)
#if defined (__GNUC__)  (__GNUC__  4 || (__GNUC__ == 4  __GNUC_MINOR__ = 
4))
__SDT_COND_SIGNED(char16_t)
__SDT_COND_SIGNED(char32_t)
#endif

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: About mtune=atom

2011-01-24 Thread Jakub Jelinek
On Mon, Jan 24, 2011 at 12:55:59PM -0500, Bill Nottingham wrote:
 Jakub Jelinek (ja...@redhat.com) said: 
  On Mon, Jan 24, 2011 at 09:25:45AM -0800, John Reiser wrote:
   Actually many of them should be using the new x86_32 software 
   architecture,
   which is the 64-bit instruction set (thus 16 general registers, SSE, 
   ...)
   but with integers, longs, and pointers all 32 bits.  The upper 32 bits
   of any user address are 0, and not stored in RAM (except the return 
   address
   of CALL.)  This gives a measurable benefit on boxes with low RAM.
  
  Except that such a model is only barely supported in binutils, the support
  for it in gcc is pre-alpha state on a branch and there is no kernel nor
  glibc support.
 
 Am I missing something, or would this also be binary-incompatible? If so,
 that's very very very much not worth the effort.

Yes, it is ABI incompatible, not sure what made hjl start with that now
and trying to push x86_64 into Irixy shape with 3 multilibs instead of 2.
I vaguely remember we've talked about it a decade ago and decided it was not
worth the effort.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: gcc 4.6 for package monkeys

2011-01-28 Thread Jakub Jelinek
On Fri, Jan 28, 2011 at 08:26:36AM +0100, Julian Sikorski wrote:
 I have just run into an issue with gcc-4.6, namely RPM Fusion's mame
 failed to compile [1]. I was told that #include stddef.h was missing.
 So I have two questions: why did including this header directly became
 necessary (code builds fine with 4.5) and are there any other issues we
 package monkeys might run into with a new compiler?

Some C++ headers were including cstdef header internally just so that they
could use std::size_t and std::ptrdiff_t.  Those types are in 4.6+ defined
in an internal libstdc++ header using compiler builtin preprocessor macros
(that existed for a while), so if you need anything else from
cstddef/stddef.h, you need to include it yourself, as basically none
of the standard C++ headers include cstddef any more.

For more details see:
http://gcc.gnu.org/ml/gcc-patches/2010-06/msg00257.html
http://gcc.gnu.org/viewcvs?root=gccview=revrev=160231

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: gcc 4.6 for package monkeys

2011-01-28 Thread Jakub Jelinek
On Thu, Jan 27, 2011 at 11:29:45PM -0800, Garrett Holmstrom wrote:
 On 1/27/2011 23:26, Julian Sikorski wrote:
  I have just run into an issue with gcc-4.6, namely RPM Fusion's mame
  failed to compile [1]. I was told that #includestddef.h  was missing.
  So I have two questions: why did including this header directly became
  necessary (code builds fine with 4.5) and are there any other issues we
  package monkeys might run into with a new compiler?
 
 GCC 4.6 changed a lot of compiler warnings to errors, so a lot of code 
 (especially C++ code) that used to get away with violations like 
 omitting headers or assigning to un-assignable things will now fail to 
 build.

Care to share details?  Of course there were many changes in the C++ FE,
especially for C++0x, and maybe some warnings changed into errors, but
nothing I'd describe as a lot.  We haven't still written
http://gcc.gnu.org/gcc-4.6/porting_to.html so if you have interesting
info about changes that affect a lot of packages, details would be certainly
welcome.  The STL changes not to include cstddef internally is certainly
one thing that will be added there.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


GCC 4.6 related common package rebuild failures (was Re: mass rebuild status)

2011-02-09 Thread Jakub Jelinek
Hi!

On Tue, Feb 08, 2011 at 06:23:57PM -0600, Dennis Gilmore wrote:
 so the mass rebuild is 24 hours in we have completed ~45% of the builds and 
 are at 365 packages failed to build the total number of builds in the mass 
 rebuild is 10404 we are churning along nicely. i expect to complete the first 
 pass sometime in the next 24 hours. so far i think its going pretty well
 
 some web pages to look at http://ausil.fedorapeople.org/rebuild.html and 
 http://ausil.fedorapeople.org/failed.html these 2 pages are updated ~ every 
 10 
 minutes. Please drop into #fedora-devel on freenode if you have any questions.

I went through the failed.html list from shortly after you mailed this,
looking for errors related to GCC 4.6 (and sometimes even 4.5).

Here are some common errors.  Please try to fix the issues rather than
adding workaround flags like -fpermissive, -Wno-unused-but-set-variable etc.
Benjamin, do you plan to write http://gcc.gnu.org/gcc-4.6/porting_to.html?
This could serve as partial source for that page.

-Werror=unused-but-set-variable
void fn (void)
{
  int foo;
  foo = bar ();
  /* foo is never used.  */
}
This is a new warning, which warns about variables that are only
ever set, but never otherwise used.  Usually such variables useless
and often even the value assigned to them is computed needlessly,
sometimes expensively.  In such cases you should just drop the
vars and initializers.  Sometimes functions called during the
initialization have important side-effects for the program,
so you really need to read the source.  So sometimes you want
to drop the unuse variables, but keep some function calls from
their initialization in the code.  In some cases (often from
macro expansion) you just want to keep such unused variables
around.  You can in that case just cast them to void,
or add __attribute__((__unused__)) to them.  As this is just
a warning, it is usually just a nice to fix thing, but for packages
that are compiled with -Werror it is a must fix.

STL headers not including cstddef any longer
If you see errors like

'ptrdiff_t' does not name a type
'size_t' does not name a type
'NULL' was not declared in this scope
'size_t' has not been declared
'offsetof' was not declared in this scope
there are no arguments to 'offsetof' that depend on a template 
parameter, so a declaration of 'offsetof' must be available

or warnings like

perhaps the 'offsetof' macro was used incorrectly

then most likely you have C++ code that includes some
STL headers and relied on them bringing in stddef.h
and is using ::ptrdiff_t, ::size_t, offsetof or NULL
macros.  The STL headers now just declare std::ptrdiff_t
and std::size_t itself when needed, and no longer bring
in stddef.h, so if you use the global namespace types
from stddef.h or offsetof/NULL, just include cstddef
explicitly.

uninitialized const
struct A { int a; A (); };
struct B : public A { };
const B b;

now gets an error:
error: uninitialized const ‘b’ [-fpermissive]
note: ‘const struct B’ has no user-provided default constructor

This is related to http://gcc.gnu.org/PR43890, B above doesn't
have a user provided default ctor, so either an initializer
needs to be provided, or the default ctor needs to be added.

reference ‘...’ cannot be declared ‘mutable’
struct A { mutable int p; int q; A () : p(q) {} };

http://gcc.gnu.org/PR33558
Just remove mutable keyword from references.

taking address of temporary
struct S { S (); int i; };
void bar (S *);
void foo () { bar (S ()); }

http://gcc.gnu.org/viewcvs?root=gccview=revrev=164704
http://gcc.gnu.org/ml/gcc-patches/2010-09/msg02144.html

This used to be just a warning, now it is an error (unless
-fpermissive).  Please don't add -fpermissive, instead just
add a variable and pass address of the variable if at all
possible.

duplicate member
struct A { int *a; union { struct { int *a; }; }; };

used to be diagnosed just by C++ FE, now since
http://gcc.gnu.org/PR4784 it is diagnosed also by C.
Because of the anonymous unions/structs there is ambiguity
about what .a actually refers to, one of the fields needs
to be renamed.

unrecognized option '-combine'
The -combine option has been removed, it has been very buggy and has
been superceeded by -flto.  Either drop it, or build with -flto.

-export-dynamic
Some packages are passing -export-dynamic to gcc/g++ drivers,
when they should be using -Wl,-export-dynamic or -rdynamic or
-Wl,-E.  See 

Re: gcc-4.6.0-0.11.fc15.x86_64 breaks strcmp?

2011-03-07 Thread Jakub Jelinek
On Mon, Mar 07, 2011 at 05:09:17PM +0100, Jim Meyering wrote:
 I suspect that there was a problem with .11, perhaps one of these:
 
 * Fri Mar 04 2011 Jakub Jelinek ja...@redhat.com 4.6.0-0.12
 - update from trunk
   - PRs c++/46159, c++/46282, c++/47200, c++/47774, c++/47851, c++/47950,
 c++/47974, c/47963, libstdc++/47913, middle-end/47283,
 rtl-optimization/47925, target/47935, tree-optimization/47890
 - rebuilt against ppl 0.11.2, reenable cloog-ppl Requires
 
 because I can't reproduce that with the latest in rawhide,
 gcc-4.6.0-0.12.fc15.x86_64:

You forgot to #include string.h

 $ cat k.c 
  :
 #define STREQ(a,b) (strcmp((a),(b)) == 0)
 
 int
 do_rm_rf (const char *path)
 {
   int r;
   char *buf, *err;
 
   if (STREQ (path, /))
 {
   reply_with_error (cannot remove root directory);
   return -1;
 }
 }
 $ gcc -O3 -c k.c -Werror=strict-overflow  
  :

I can reproduce it and have filed http://gcc.gnu.org/PR48022 for it.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: gcc-4.6.0-0.12.fc15.x86_64 breaks strcmp?

2011-03-07 Thread Jakub Jelinek
On Mon, Mar 07, 2011 at 05:15:18PM +0100, Jim Meyering wrote:
 With the former and -O3, I do see your warning.
 Here's a pared-down test case:
 
 $ cat k.c
 #include string.h
 void do_rm_rf (const char *p) { if (strcmp (p, /) == 0) return; }
 $ gcc -Wall -O3 -c k.c -Werror=strict-overflow
 k.c: In function ‘do_rm_rf’:
 k.c:2:1678: error: assuming signed overflow does not occur when changing 
 X +- C1 cmp C2 to X cmp C1 +- C2 [-Werror=strict-overflow]
 cc1: some warnings being treated as errors

FYI, as a workaround -D__NO_STRING_INLINES should work, then strcmp
isn't expanded to the fancy glibc expansion...

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Using LD_PRELOAD wrappers to identify problem use of shared library functions

2011-03-10 Thread Jakub Jelinek
On Thu, Mar 10, 2011 at 11:25:38AM -0500, William Cohen wrote:

 Shared library are heavily used through Linux distributions.
 Unfortunately, there are cases of functions in the libraries having
 undefined behavior.  Rather than immediately reporting the dependence on
 that undefined behavior, the applications may later fail in odd and
 seemingly random ways.  On particular example of this problem is the
 memcpy function which has undefined behavior when the source and
 destination regions overlap.  This resulted in the following bug being
 filled about Strange sound on mp3 flash website:
 
 http://koji.fedoraproject.org/koji/taskinfo?taskID=2898613
 
 The diagnosis of this problem was not straightford because the memcpy
 silently corrupted the data in the copy.  There are many other examples of
 this type of memcpy problems in bugzilla.
 
 What would be desirable is catching the dependency on undefined behavior
 when it occurs.  The LD_PRELOAD environment variable allows wrappers for
 shared library functions to be inserted.  These wrappers can do additional
 checks and flag those issues when they occur.  The mutrace package in
 Fedora is one example of this approach.  It makes use of this mechanism to
 instrument the mutex operations and can trigger a gdb breakpoint when a
 problem mutex operation occurs.
 
 I have taken the code in the mutrace package and made memstomp which looks
 for the memcpy of overlapping regions.
 
 git repo at:
 
 http://fedorapeople.org/gitweb?p=wcohen/public_git/memstomp;a=summary
 
 A fedora scratch package RPM at:
 
 http://koji.fedoraproject.org/koji/taskinfo?taskID=2898613
 
 
 Valgrind does check the arguments for memcpy (and many other memory
 related checks).  The main advantage to using the specialized wrappers
 like memstomp is lower overhead.  Most people are not willing to pay for
 the overhead that valgrind introduces (4x-100x slow downs).  The overhead
 for the memstomp wrappers should be low enough that it would be feasible
 to set the LD_PRELOAD for Fedora alpha releases.  This would make the
 problems depending on undefined behavior obvious rather than spending a
 large amount of time trying to replicate the problem and then diagnosing
 it.

Nice, but I think the dlsym (NULL, main) lookup should not be done, at
least not by default, we really don't want to encourage people linking
programs with -rdynamic, that adds a runtime penalty.

And, it would be nice when you have such a library not to check just
memcpy, there are plenty of other commonly used calls which could
be warned about.

memcpy, strcpy, strncpy, strcat, strncat, strtok, strtok_r, mempcpy, strsep,
stpcpy, stpncpy, memccpy

just to name a few from string.h, then for -D_FORTIFY_SOURCE also
__memcpy_chk, __mempcpy_chk, __strcpy_chk, __stpcpy_chk, __strncpy_chk,
__stpncpy_chk, __strcat_chk, __strncat_chk.

In wchar.h e.g.
wcscpy, wcsncpy, wcscat, wcsncat, wcstok, wmemcpy, wmempcpy
and maybe
mbrtowc, wcrtomb, mbrlen, mbsrtowcs, wcsrtombs, mbsnrtowcs,
wcsnrtombs, wcstol, wcstoul, wcstoll, wcstoull, ...

Maybe also sprintf/snprintf if format string contains some %s/%ls/%S
specifiers and those arguments overlap the target.

Basically, most of the __restrict/restrict qualified prototypes
in glibc headers would be good candidates for overlap tests (if possible
to determine length).

In the implementation of the checking library you probably want
to #include sys/cdefs.h, then #undef __restrict #define __restrict
and similarly for restrict and __restrict_arr and compile the
file with -fno-builtin, to make sure gcc doesn't optimize your checks
away based on the arguments being restricted pointers.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Shared library permissions in Debian-land and Red Hat-land

2011-03-24 Thread Jakub Jelinek
On Wed, Mar 23, 2011 at 09:52:24PM -0700, John Reiser wrote:
   they say on Debian and Ubuntu,
  all shared libs have 0644 permissions.
 
 What they say is incorrect.

Well, given that libc.so and ld.so are shared libraries with
with meaningful e_entry, so you can actually run
/lib/ld-2.*.so or /lib/libc-2.*.so,
those definitely should be 755.  The question is about libraries
which just segfault when you try to exec them (most of the shared
libraries).

 I have Ubuntu 10.10 i686:
 -rwxr-xr-x 1 root root 1421892 2011-01-21 15:08 /lib/libc-2.12.1.so

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: 9base in Fedora?

2011-05-26 Thread Jakub Jelinek
On Thu, May 26, 2011 at 02:18:07PM +0200, Petr Sabata wrote:
 I'd like to thank all for their input.
 
 As I understand it, the best way to do this in Fedora, with respect to
 same ideas in this thread, would be having %{_libexecdir}/plan9 or similar,
 with bin, lib and share (or whatever upstream supplies) subdirectories.

You understood it wrong, %{_libexecdir}/plan9 should contain only binaries
and nothing else, the rest would go into %{_libdir}/plan9.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: selinux alert from gccgo

2011-06-09 Thread Jakub Jelinek
On Thu, Jun 09, 2011 at 11:26:26AM -0400, Daniel J Walsh wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 On 06/09/2011 09:19 AM, Neal Becker wrote:
  I just compiled 'hello world.go' with gccgo on F15 and got selinux alert 
  about 
  mmap_zero when executable was run.
  
 THen I would open a big bug with gccgo and tell them to fix their code.
 
 mmap_zero is a known attack vector for exploiting kernel flaws, and
 almost no applications should need this access.
 
 Here is a discussion on it, and the problems that it caused SELinux.
 
 http://eparis.livejournal.com/

See https://bugzilla.redhat.com/show_bug.cgi?id=693143
mmap_zero audit message sounds like a kernel bug rather than gccgo,
all it needs is executable stack (well, I think it really wants
executable heap but is marked as needing executable stack).
It has been reported to Ian, but nothing has been rewritten upstream
yet.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: systemd: please stop trying to take over the world :)

2011-06-15 Thread Jakub Jelinek
On Wed, Jun 15, 2011 at 11:12:35AM -0400, Daniel J Walsh wrote:
 On 06/15/2011 11:03 AM, Miloslav Trma? wrote:
  On Wed, Jun 15, 2011 at 4:44 PM, Stephen Smalley s...@tycho.nsa.gov wrote:
  Ways to improve the situation for systemd would include:
  - Only load a subset of file_contexts entries, similar to udev.
  - Only load the file contexts entries temporarily, using selabel_open +
  selabel_close to bracket entire blocks where files are created or
  relabeled.
  - At policy build time, precompute a DFA for all of the regexps, and
  store it in a file.  This file could be mmap()ed into any user of the
  policy, requiring no malloc(), and allowing the kernel to free the
  memory when it is no longer used; this should also make loading of the
  file_contexts configuration faster.
 Mirek
 
 I was wondering if this was possible.  Any example of how to do it?

At least with glibc regex, that would be terribly unportable and
wouldn't buy much, as regcomp isn't very expensive, the DFA nodes
are created on the fly during regexec as needed.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Plan for tomorrow's FESCo meeting (2011-06-21)

2011-06-24 Thread Jakub Jelinek
On Fri, Jun 24, 2011 at 05:16:12PM -0400, Adam Jackson wrote:
 and compiling it.  In this case, -z relro on its own will not help: the 
 address of the 'exit' function isn't known until it's first called, 
 because function resolution is normally done lazily, and because the 
 'exit' symbol is not provided in the executable itself.  So the 
 exit_type_array will end up in the final executable in a writeable 
 section.  However, -z relro _will_ constify relocations that end up as 
 part of the same linked object, eg, a function defined in one 
 translation unit whose address is taken in another.
 
 If instead you say both -z relro and -z now, then you are explicitly 
 asking the runtime linker to resolve all symbols up front.  In this case 
 the address of 'exit' _will_ be known before ctors are run, which means 
 the array can be emitted in a .data.rel.ro section, which is initially 
 writeable but made read-only after relocations.

For binaries the address of 'exit' will be actually the exit@plt address
in the .plt section of the binary, and for symbols that don't have plt
entries in the binary, it is still a normal relocation against the symbol.
Only .rel{,a}.plt relocations are resolved lazily, all other relocations
are always resolved immediately.  So if you have relocation against exit
in .data.rel.ro section in a shared library, it will be resolved right away
and then .data.rel.ro can be write protected if PT_GNU_RELRO covers it.
Either it will resolve to exit@plt in the binary if any, or to the
definition.  With -z now in addition to -z relro, the only differences
are that .dynamic flags will tell ld.so to disable lazy relocation
and that PT_GNU_RELRO will also cover the .got.plt section, which is
normally after the PT_GNU_RELRO section, so it can be written into.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: question about -fstack-protector and fedora

2011-06-30 Thread Jakub Jelinek
On Thu, Jun 30, 2011 at 03:19:10PM +0200, Reindl Harald wrote:
 as far as i can see fedora is built with -fstack-protector and not
 -fstack-protector-all - is there a specific reason for not using
 the all variant

Sure, it is expensive to set up the canary even when it is obvious
it isn't needed.  We by default use 4 byte+ arrays as the trigger to
add stack canaries (gcc default is 8 byte+), with -fstack-protector-all
you add it even for functions that don't have any stack variables at
all, or that have only scalar vars etc.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: question about -fstack-protector and fedora

2011-06-30 Thread Jakub Jelinek
On Thu, Jun 30, 2011 at 03:31:24PM +0200, Jakub Jelinek wrote:
 On Thu, Jun 30, 2011 at 03:19:10PM +0200, Reindl Harald wrote:
  as far as i can see fedora is built with -fstack-protector and not
  -fstack-protector-all - is there a specific reason for not using
  the all variant
 
 Sure, it is expensive to set up the canary even when it is obvious
 it isn't needed.  We by default use 4 byte+ arrays as the trigger to
 add stack canaries (gcc default is 8 byte+), with -fstack-protector-all
 you add it even for functions that don't have any stack variables at
 all, or that have only scalar vars etc.

I'd add that even functions as simple as
int foo (void) { return 1; }
are protected with -fstack-protector-all, with -fstack-protector
this function has 2 instructions, with -fstack-protector-all 11, which
includes creating a stack frame etc.
Really, -fstack-protector --param=ssp-buffer-size=4 is carefully chosen
reasonable default, just don't listen to clueless LFS/Gentoo folks
that suggest something else.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: glibc 2.14-4 eats my data (Re: F15 ext3, eCryptfs + samba = data corruption (Re: F15 Error mounting eCryptfs: [-5] Input/output error on different disks))

2011-07-08 Thread Jakub Jelinek
On Fri, Jul 08, 2011 at 01:12:04PM -0400, Steve Clark wrote:
 So it does appear to be related to the memcpy change in libc.

So eCryptfs is buggy, just fix it.
The compatibility stuff that has been added to glibc to workaround
buggy old programs was just for programs linked against old glibc.
If you compile it again and you want it still working, fix it.
It isn't that hard.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: glibc 2.14-4 eats my data (Re: F15 ext3, eCryptfs + samba = data corruption (Re: F15 Error mounting eCryptfs: [-5] Input/output error on different disks))

2011-07-08 Thread Jakub Jelinek
On Fri, Jul 08, 2011 at 01:27:45PM -0400, Steve Clark wrote:
 memove should be used if areas overlap that are being copied.

If they overlap or may overlap.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: Proposed F18 feature: MiniDebugInfo

2012-05-07 Thread Jakub Jelinek
On Mon, May 07, 2012 at 04:25:46PM +0200, Jan Kratochvil wrote:
 On Mon, 07 May 2012 15:07:20 +0200, Alexander Larsson wrote:
  I just wrote a new Feature proposal for shipping minimal debug info by
  default:
  https://fedoraproject.org/wiki/Features/MiniDebugInfo
 
 The several choices is missing the primary possibility of no debug info
 needed at the client side at all thanks to already implemented
   https://fedoraproject.org/wiki/Features/RetraceServer
 
 Why not to use ABRT Retrace Server for the bugreports instead?
 
 I am only aware the upload of core file may be slow but that can be solved
 (by gdbserver for core files, which was already implemeted once).  I do not
 know if it is a real problem or not, core file do not have to be large.

For bug reporting, you don't need to upload core files, if all you want
is to augment backtraces with symbol info and perhaps line info, then
all you can do is just upload backtraces without symbol info/line info,
supply the relevant build-ids for addresses seen in the backtrace and
let some server with access to debuginfo packages finish that up.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F18 feature: MiniDebugInfo

2012-05-07 Thread Jakub Jelinek
On Mon, May 07, 2012 at 05:25:29PM +0200, Jan Kratochvil wrote:
 On Mon, 07 May 2012 16:34:27 +0200, Jakub Jelinek wrote:
  For bug reporting, you don't need to upload core files, if all you want
  is to augment backtraces with symbol info and perhaps line info, then
  all you can do is just upload backtraces without symbol info/line info,
  supply the relevant build-ids for addresses seen in the backtrace and
  let some server with access to debuginfo packages finish that up.
 
 This will lose a lot of info, any local variables, function parameters, even
 inlined functions etc.

Lose info compared to what?  If debuginfo isn't installed on the client
side, only this minidebug info is there, then that info wouldn't be provided
either, so just adding the symbol (and/or line info) stuff on the server
shouldn't make (much difference), unless the backtrace uses symbol or line
info internally for heuristics etc. (but we really should be emitting
async unwind info anyway already).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F18 feature: MiniDebugInfo

2012-05-08 Thread Jakub Jelinek
On Tue, May 08, 2012 at 08:09:04AM +0200, Alexander Larsson wrote:
 This is your opinion. I rarely need the full backtrace in a bug report,
 because it you can get one its generally something thats easily
 reproduced and I can just run it in gdb myself. When you need it is when
 something weird is happening and you have to rely on the bugreport only.
 This is sometimes doable even without debug info, I even wrote a blog
 post about this:
 
 http://blogs.gnome.org/alexl/2005/08/26/the-art-of-decoding-backtraces-without-debug-info/
 
 But, having the full symbol names for all libraries and apps in all
 backtraces I'll ever see in the future would help me immensely. Even if
 its just an unwinder.

But for that you really don't need the symtabs stored in the binaries/shared
libraries, you can just have the backtrace without symbols printed + print
relevant build-ids at the beginning, a script at any time can reconstruct
that into not just the symbol names, but also lineinfo.  And the build-ids
will help even if you want to look at further details (.debug_info, source
files).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F18 feature: MiniDebugInfo

2012-05-08 Thread Jakub Jelinek
On Tue, May 08, 2012 at 08:34:57AM +0200, Alexander Larsson wrote:
 Its true that that is all the information you need from the
 process/core. But you need to have the rest of the information availible
 *somewhere*, such as on a global retrace server or just having it

Yes.

 locally in the minidebuginfo. The later is far more robust and simple.
 It lets you directly get a reasonable backtrace given *only* the actual
 binaries in the running process.

What is far more robust and simple is something we simply have to agree to
disagree on.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Proposed F18 feature: MiniDebugInfo

2012-05-09 Thread Jakub Jelinek
On Wed, May 09, 2012 at 01:44:03PM +0200, Alexander Larsson wrote:
 I'm not proposing that we drop the existing backtraces with full debug
 info, but (appart from the other places where backtraces are also
 useful) I'd like it if ABRT could somehow catch all the cases where
 people abort a bugreport because things are scary/slow/bad
 network/whatever and at least report the low quality backtrace, which
 should be very quick and require little work from the user.

But you don't need any kind of minidebuginfo for that first step,
you can make it even faster by just uploading the backtrace + build-ids
and on the server side the rest of transforming that to a low-quality
backtrace can be handled automatically, without
further user intervention, in case the user didn't go through to uploading
the high quality thing from retrace server.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: x32 abi support?

2012-05-16 Thread Jakub Jelinek
On Wed, May 16, 2012 at 04:28:31PM +0200, Lennart Poettering wrote:
 Mhmm, so I was under the impression that x32 was mostly about increasing
 the scalability of virtualized systems. i.e. run a higher number of
 x32 containers/VM on an x86_64 host. Most server software that is run in
 containers/VMs does not require 64bit address space, and hence using x32
 for them should be quite benificial so that you can run more
 containers/VMs per host. After all this would reduce memory and CPU
 consumption of each, and due to smaller memory usage also result in less
 IO?

Note that x32 is less secure than x86-64, the possible address space
randomization is much more limited there, while there is ASCII armor, it
can protect just a couple of libraries, unlikely all of them.  With LP64
certain kinds of exploits are harder.

And, for various programs you usually don't need 64-bit address space,
but in the case where you have say bigger input you are simply out of luck
if you are limited to 32-bit address space.  Say with compilers/linkers,
you can usually compile smaller stuff just fine with 32-bit compiler, but
if you have some larger source code, x32 won't do it.  Similarly
various other programs that don't have constant memory requirements, but
linear (or worse) with the size of the input.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: How to proceed with MiniDebugInfo

2012-05-24 Thread Jakub Jelinek
On Thu, May 24, 2012 at 04:19:15PM +0200, Jan Kratochvil wrote:
 do better is too ambiguous and probably not right.  Duplication matching can
 be always done server-side.  Minidebuginfo may give less load for ABRT servers
 for example, this does not match the do better phrase.

And the symbols for the duplication matching aren't as important,
it is enough if the reporting client transforms addresses in the unwind
address list into build-id + offset form, then it can be matched on the
server side too.  Only if you want to fuzzy match bugreports from different
NVRs, then offsets are not useful and symbol names only sometimes useful.
But the build-id + offset form can be transformed into more detailed forms
on the server easily.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: prelink should not mess with running executables

2012-07-19 Thread Jakub Jelinek
On Thu, Jul 19, 2012 at 07:10:18AM -0400, Sam Varshavchik wrote:
 What's a special-case band-aid about it?  It looks perfectly
 reasonable to me.  Why wouldn't you restart init?
 
 Why would you?If there's nothing wrong with with overwriting an
 executable, and, after all, that's how UNIX worked forever, then why
 bother restarting init?

prelink/rpm/install etc. don't overwrite binaries, they write a temporary
file in the same directory and rename over an executable, that is the
standard UNIX way of upgrading stuff atomically.  The reason for restarting
init is that init is special, if you don't restart it, you have trouble on
system shutdown, because the still used deleted files (init + shared
libraries it uses) prevent from unmounting / cleanly.  These days I
think init reexecs itself during shutdown sequence anyway, so we might
as well get away without restarting it.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: prelink should not mess with running executables

2012-07-20 Thread Jakub Jelinek
On Fri, Jul 20, 2012 at 07:08:39AM -0400, Sam Varshavchik wrote:
 ??? prelink most certainly does NOT restart every daemon.  prelink
 restarts init because historically init didn't always re-exec itself at
 shutdown, which in turn caused the root filesystem to not be cleanly
 unmounted.
 
 There was no need to reexec init until prelink came along.

False.  glibc %post had to (and still does AFAIK) rexec init too.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: DWARF 4

2011-12-09 Thread Jakub Jelinek
On Fri, Dec 09, 2011 at 01:16:42PM -0700, Jerry James wrote:
 Are there known obstacles in the way of replacing -g with -gdwarf-4
 -fvar-tracking-assignments in our %{optflags}?  I'm eager to be rid
 of gdb telling me that the one value I really have to know to diagnose
 a crash has been optimized away.  Are there bits of the toolchain that
 can't handle DWARF 4?  Will debuginfo grow significantly in size?

For -OX -g (for X != 0) -fvar-tracking-assignments is the default
and in F16+ GCC also -gdwarf-4 is the default (with -fno-debug-types-section
, as .debug_types is still not supported by many tools and has lots of
unsolved problems even on its own, but otherwise you get all the DWARF4
goodies and in F16 also a bunch of new extensions).
F16 gdb doesn't support DW_OP_entry_value and typed DWARF stack extensions
I think, you need to wait for F17 for that.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Results of a test mass rebuild of rawhide/x86_64 with gcc-4.7.0-0.1.fc17

2011-12-31 Thread Jakub Jelinek
Hi!

As part of preparations to switch GCC in F17 to GCC 4.7.0, I've performed
a test mass rebuild of rawhide (December 23th package list) using
gcc-4.7.0-0.1.fc17 on x86_64, and for those packages that failed also
rebuilt the same package with gcc-4.6.2-1.fc16 to quickly remove from the
list packages that fail for non-gcc related reasons.
Out of the 11270 packages I've built, 10056 packages built fine with
gcc-4.7.0-0.1.fc17 and 845 packages failed to build also with
gcc-4.6.2-1.fc16, so I'm ignoring those from any analysis.
I've analyzed some of the remaining failures and tried to categorize it
a little bit.  There were 3 internal compiler errors seen during the
whole mass rebuild, http://gcc.gnu.org/PR5169{2,4,5} are currently
filed and slightly analyzed, but not fixed yet.

CCing Benjamin if he'd be interested to write
http://gcc.gnu.org/gcc-4.7/porting_to.html again this time.

The common reasons for build failures were (I'm attaching srpm lists for
these categories):

http://gcc.gnu.org/PR49745  119 failures
iostream, string and other STL headers that previously
included unistd.h as an implementation detail (to get some
feature macros for gthr*.h purposes) no longer do so (it was
a C++ standard violation), to fix this up just add
#include unistd.h early in the sources (or headers) that need it.

http://gcc.gnu.org/PR24163  60 failures
http://gcc.gnu.org/PR29131  28 failures
C++ lookup fixes, the C++ FE no longer performs an extra unqualified
lookup that it (incorrectly) performed in the past.  In some cases the
diagnostics includes hints how to fix the bugs, for PR24163 the
diagnostics looks like:
error: 'something' was not declared in this scope, and no declarations 
were found by argument-dependent lookup at the point of instantiation 
[-fpermissive]
note: declarations in dependent base 'someclasssomearg' are not found 
by unqualified lookup
note: use 'this-something' instead
and for PR29131 diagnostics looks like:
error: 'something' was not declared in this scope, and no declarations 
were found by argument-dependent lookup at the point of instantiation 
[-fpermissive]
note: 'templateclass T1, class T2 sometype something(T1, const T2)' 
declared here, later in the translation unit

checking for stdbool.h that conforms to C99... no   2 failures
but affects other 150+ 
packages
apparently autoconf 2.60 through autoconf 2.67 contains an invalid
check in its stdbool.h checking macro:
# if defined __xlc__ || defined __GNUC__
   /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
  reported by James Lemley on 2005-10-05; see
  
http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
  This test is not quite right, since xlc is allowed to
  reject this program, as the initializer for xlcbug is
  not one of the forms that C requires support for.
  However, doing the test right would require a runtime
  test, and that would make cross-compilation harder.
  Let us hope that IBM fixes the xlc bug, and also adds
  support for this kind of constant expression.  In the
  meantime, this test will reject xlc, which is OK, since
  our stdbool.h substitute should suffice.  We also test
  this with GCC, where it should work, to detect more
  quickly whether someone messes up the test in the
  future.  */
   char digs[] = 0123456789;
   int xlcbug = 1 / ((digs + 5)[-2 + (bool) 1] == digs[4] ? 1 : 
-1);
# endif
As written, the test is not quite right and a conforming C compiler
is not required to accept it and starting with
http://gcc.gnu.org/viewcvs?root=gccview=revrev=172958
GCC rejects it (and similarly from what I understood from autoconf
2.68 notes recent xlc rejects it as well).  autoconf 2.68 dropped
this incorrect check, but apparently many packages include their
own configure scripts without regenerating them.  Wonder what is the
best thing to do here, ask package maintainers to grep for this
int xlcbug = ...; in their packages and sedding that to
int xlcbug = 0;, or dropping that || defined __GNUC__ above the
invalid test, or asking where possible to regenerate configure with
autoconf 2.68, perhaps some rpm-build script to do the sedding?
Most of the 150+ packages just refused to use the system stdbool.h
because of this and did something else (either provided their own
stdbool.h alternative, falled back to using int 

Re: Results of a test mass rebuild of rawhide/x86_64 with?gcc-4.7.0-0.1.fc17

2011-12-31 Thread Jakub Jelinek
On Sat, Dec 31, 2011 at 08:55:53AM -0600, Dennis Gilmore wrote:
 if we plan to do a mass rebuild for gcc 4.7 we need to start it next week.

IMHO a mass rebuild is highly desirable, but (with the exception of
a few gcj/objc dependent packages not strictly required).  We still have
lots of *.fc15, and we even have some *.fc11 packages.
That said, why would it need to start next week?  Looking at the F15
schedule where a mass rebuild has been performed too on Feb, 7th or so,
the schedule milestones are the same.

I can put gcc-4.7.0-0.2.fc17 say mid next week into the buildroots,
but would strongly prefer to have it there for at least two weeks
of voluntary rebuilds, so that there is enough time to report bugs
and get them fixed, before a real mass rebuild starts.
So, if at all possible, I'd prefer the mass rebuild to start around January
19th or 20th.  That's still before Feature Submission Deadline and more than
three weeks before Alpha deadline.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Results of a test mass rebuild of rawhide/x86_64 with gcc-4.7.0-0.1.fc17

2012-01-02 Thread Jakub Jelinek
On Mon, Jan 02, 2012 at 09:09:29AM -0700, Nathanael Noblet wrote:
 
 On Jan 2, 2012, at 5:30 AM, Nils Philippsen wrote:
  I've attached a list of packages and (co)maintainers, to easily find if
  one of your packages is affected or not.
 
   It seems one of my packages has an issue, the gcc unistd.h include one.
 How do I reproduce the build issues?  Is there a package someplace or mock
 config I can use to test it out to make sure I have it working/patched? 
 Do I need to use my own repos with an unsigned build of gcc from koji?  Or
 will there be a global repo people can use prior to the mass rebuild?  Or
 should I just wait for the mass rebuild and do it then etc??

Just wait an extra day or two.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Results of a test mass rebuild of rawhide/x86_64 with gcc-4.7.0-0.1.fc17

2012-01-03 Thread Jakub Jelinek
On Mon, Jan 02, 2012 at 07:03:44PM +0100, Jim Meyering wrote:
 
 I have just tried to build iwhd on F16 using a pretty recent gcc-4.7.x
 (built manually: 4.7.0 20111202), and it worked fine, so I'm not quite
 sure why iwhd is on the list.  Maybe the gcc-4.7.x that Jakub used
 lacks something that's in my Dec 2 snapshot, or maybe it's simply a
 problem in a dependent that has been fixed in the interim.

iwhd was in the totally non-analyzed lists, which built normally
in rawhide x86_64 mock and failed to build with
that plus my gcc 4.7.0 + libtool repo.
The failure was:
checking gc.h presence... yes   
 
checking for gc.h... yes
 
checking for mongo/client/dbclient.h... no  
 
configure: error: Missing Mongo DB client development library: mongodb-devel
 
error: Bad exit status from /var/tmp/rpm-tmp.ndPEGn (%build)
 
Bad exit status from /var/tmp/rpm-tmp.ndPEGn (%build)   
 
RPM build errors:   
 
Child returncode was: 1 
 

Given the huge amount of packages, I really don't have time to look
at every one, the mass rebuild was performed mainly to determine
gcc 4.7 readiness and find out most common porting issues when porting
from 4.6 to 4.7.  The rebuilds were all done using mock, while with the
same set of package NVRs (taken from 23rd SRPMS list), the rawhide distro
could very well be slightly changing even over the period of the few
days it took to rebuild everything.

BTW, the stdbool configury problem I wrote about is solved on the
gcc side, we optimize again the (not strictly valid) test and thus
the standard autoconf 2.6[0-7] stdbool detection should work again.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: GCC 4.7 build issues: error: no matching function for call...

2012-01-09 Thread Jakub Jelinek
On Mon, Jan 09, 2012 at 11:04:33AM -0600, Richard Shaw wrote:
 I think I'm almost there. I was also troubleshooting parallel make
 issues but I think I've got that sorted out (thankfully it builds with
 cmake).
 
 The build seems to pause for a while and I see the following output:
 
 /builddir/build/BUILD/openCOLLADA-svn864/COLLADASaxFrameworkLoader/src/generated14/COLLADASaxFWLColladaParserAutoGen14PrivateFunctionMap.cpp:20:6:
 note: variable tracking size limit exceeded with
 -fvar-tracking-assignments, retrying without
 
 Is this anything I should worry about? Is there anything I (as the
 packager) could/should do about it?

This is just a note from the compiler the debug info for the
particular function will have lower quality, because the function
is too large/complex.  You could raise the limit with
--param=max-vartrack-size=N
(the default is 5000), but you could end up with very slow
compilation or the compiler could ned gigabytes of memory
to compute the debug info location lists.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Moving gnustep to clang/llvm

2012-01-18 Thread Jakub Jelinek
On Wed, Jan 18, 2012 at 06:03:05PM +0100, Jochen Schmitt wrote:
 
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 On 18.01.2012 17:57, Andrew Haley wrote:
 
  The issue was, that during thu build of gnustep-base I have got a
  error messag which told me, that the file objc/objc-api.h was not
  found.
 
  So I have ask upstream for support to solve this issue.
 
  Right, so it's probably not a gcc issue but a real bug in
  gnustep.
 
 
 
 The cited file objc/objc-api.h was provided by the gcc-objc package and
 was removed by gcc-4.7.0, so the reason for my issue depends on the
 gcc-4.7.0 packages.

GCC 4.6 objc-api.h said:
/* This file declares the traditional GNU Objective-C Runtime API.
   
   It is the API supported by older versions of the GNU Objective-C 
   
   Runtime.  Include this file to use it.   
   

   
   This API is being replaced by the modern GNU Objective-C Runtime   
   
   API, which is declared in objc/runtime.h.  The modern API is very  
   
   similar to the API used by the modern Apple/NeXT runtime.
   

   
   The last version of GCC supporting the traditional API is GCC 4.6.   
   
   This file will not exist in later versions of GCC.   
   

   
   Because the two APIs have some conflicting definitions (in   
   
   particular, Method and Category are defined differently) you should  
   
   include either objc/objc-api.h (to use the traditional GNU   
   
   Objective-C Runtime API) or objc/runtime.h (to use the modern GNU
   
   Objective-C Runtime API), but not both.  */  
   
so it is surprising that gnustep maintainers didn't bother to do anything
to move toward objc/runtime.h.  And it surprises me that clang actually
didn't remove that header too, I'd have thought that Nicola Pero
removed it because it was gone in clang/llvm too.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: gcc 4.7 changes binary behaviors ?

2012-01-26 Thread Jakub Jelinek
On Thu, Jan 26, 2012 at 07:12:43AM +, Sérgio Basto wrote:
 Hi, hope that also could help 
 
 Has package builder we also build kBuid 
 http://koji.fedoraproject.org/koji/packageinfo?packageID=7356
 , after use kBuid compile with gcc 4.7 I got this error on building
 virtuaBox
 
 /usr/bin/kmk_sed: file 
 /builddir/build/BUILD/VirtualBox-4.1.8_OSE/src/VBox/Runtime/common/err/errmsg.sed
  line 31: Unmatched [ or [^
 kmk: *** 
 [/builddir/build/BUILD/VirtualBox-4.1.8_OSE/obj/obj/Runtime/errmsgdata.h] 
 Error 1
 kmk: *** Deleting file 
 `/builddir/build/BUILD/VirtualBox-4.1.8_OSE/obj/obj/Runtime/errmsgdata.h'
 kmk: *** Waiting for unfinished jobs
 
 build virtualbox with same kBuild but that was build with gcc 4.6 I
 don't have this problem using kBuild-0.1.98-1.r1.fc17 works, using
 kBuild-0.1.98-2.r1.fc17 I got this error, with kmk_sed. 
 Any clue is appreciated 

That just clearly shows how bundling libraries (violation of Fedora
packaging guidelines) is harmful.
Apparently, kBuild/src/sed/lib contains a copy of sed? regex code
which is a copy of the glibc code (but I hope sed is configured to
use the system regex), so it hits the same problem as has been already fixed
in glibc:
http://sources.redhat.com/ml/libc-alpha/2011-12/msg00091.html
Please file bugs against kBuild and possibly against sed too.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: gcc 4.7 changes binary behaviors ?

2012-01-26 Thread Jakub Jelinek
On Fri, Jan 27, 2012 at 05:22:20AM +, Sérgio Basto wrote:
  As an illustration gcore also broke with gcc-4.7 but it was a bug of gcore:
  http://sourceware.org/ml/binutils/2011-12/msg00298.html
 
 as the code violates ISO C99 6.2.4 item 5 by using local variable
 outside of 
 its block, GCC optimizes out the second memcpy, keeping there only that
 memset.
 
 well kmk_sed code not have necessary to be ISO C99, which could be a tip
 try compile kbuild without change behavior of gcc  4.7 

My complain about bundling of libraries etc. was just a generic one, if
for some particular reasons you can't stop doing that, you need to apply the
patch I've referenced in my earlier mail to kBuild sources as well.
It is triggering undefined behavior too, by lying to the compiler
that a function is pure (a function that only uses its arguments and can
read memory in order to return result, but can't modify global state)
when it modifies memory.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Apple will use LLVM

2012-02-16 Thread Jakub Jelinek
On Thu, Feb 16, 2012 at 11:12:06AM -0500, Bill Nottingham wrote:
  The another usual mistake when people compare speed of GCC and LLVM
  is to use -O2 for the both compilers.  But the true is that -O1 of
  GCC is -O2 of LLVM with the point of code generation quality.  The
  compiler speed of GCC with -O1 is the same as for LLVM with -O2.
  You can find the latest comparison of LLVM and GCC on
  http://vmakarov.fedorapeople.org/spec/ (see 2011 comparison at the
  bottom of the left frame).
 
 Speaking of potential magic bullets... is there any reason
 we don't enable auto-vectorization by default (with -O3, or with the
 assorted -f/-m flags?)

Auto-vectorization is enabled by default for -O3 if the chosen CPU
supports vector instructions (i.e. on x86_64 always, on i?86 only for -msse
(and better -msse2, -mavx can make a big difference over -msse2 for both),
or can be enabled manually (-O2 -ftree-vectorize).
Enabling it by default isn't a magic bullet, I believe most of the distro
code is cold code where -O3 or even -O2 -ftree-vectorize would enlarge the
code size too much, increase cache footprint and not be a win in the end.
For performance sensitive code sure, enabling -O3 or -O2 -ftree-vectorize
is desirable, even better when acompanied by PGO (-fprofile-generate,
run the resulting application on some training data (benchmark, testsuite,
...), -fprofile-use).
For just -O3 or -O2 -ftree-vectorize we could perhaps have some knob in
the spec files to request those extra flags, for PGO it really requires
some work from the packager (but e.g. bash/grep/awk, perhaps perl/python
etc. would definitely improve, gcc itself is already built with PGO).

 - Is it not stable enough?

It is pretty stable, of course -O2 -g is the usual default, so -O3 is
somewhat less tested than that, but many LFS distros are sometimes
built with -O3.

 - Does it not take effect often enough?

It takes effect pretty often and is improving in that, though of course
in many cases could take effect even more often than now.  On the other
side the current cost model is not very precise and sometimes vectorization
slows things down instead of speeding it up, sometimes on some CPUs only.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Apple will use LLVM

2012-02-22 Thread Jakub Jelinek
On Wed, Feb 22, 2012 at 08:46:19AM +0100, Roman Rakus wrote:
 On 02/16/2012 05:33 PM, Jakub Jelinek wrote:
 For just -O3 or -O2 -ftree-vectorize we could perhaps have some knob in
 the spec files to request those extra flags, for PGO it really requires
 some work from the packager (but e.g. bash/grep/awk, perhaps perl/python
 etc. would definitely improve, gcc itself is already built with PGO).
 
 What kind of work? I have tried to build bash with added -O2
 -ftree-vectorize -fprofile-generate, but the build fails with many
 undefined reference to `__gcov_*.

That would be probably because -lgcov isn't linked in.  When using
-fprofile-generate, you need to pass that switch not just during
compilation, but also when linking the binaries (or libraries) that contain
-fprofile-generate compiled objects.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Apple will use LLVM

2012-02-23 Thread Jakub Jelinek
On Thu, Feb 23, 2012 at 05:26:25PM +0100, Roman Rakus wrote:
 On 02/22/2012 09:08 AM, Jakub Jelinek wrote:
 On Wed, Feb 22, 2012 at 08:46:19AM +0100, Roman Rakus wrote:
 On 02/16/2012 05:33 PM, Jakub Jelinek wrote:
 For just -O3 or -O2 -ftree-vectorize we could perhaps have some knob in
 the spec files to request those extra flags, for PGO it really requires
 some work from the packager (but e.g. bash/grep/awk, perhaps perl/python
 etc. would definitely improve, gcc itself is already built with PGO).
 What kind of work? I have tried to build bash with added -O2
 -ftree-vectorize -fprofile-generate, but the build fails with many
 undefined reference to `__gcov_*.
 That would be probably because -lgcov isn't linked in.  When using
 -fprofile-generate, you need to pass that switch not just during
 compilation, but also when linking the binaries (or libraries) that contain
 -fprofile-generate compiled objects.
 
  Jakub
 Thanks. Anyone who wants to try/test such built bash can use my
 builds which I copied to fedorapeople [1]. It was built using mock.
 Any comments, test results are welcome.
 
 [1] http://rrakus.fedorapeople.org/bash-PGO/

You are compiling with
'CPPFLAGS=-D_GNU_SOURCE -DRECYCLES_PIDS  -O2 -ftree-vectorize 
-fprofile-generate -fprofile-use'
That doesn't make sense.  You need to build twice.
Step 1)
  build with -fprofile-generate (other flags the same in both builds)
Step 2)
  run the program on some typical workload (make check, some large
  configure script you want to ptimize for, the closer it is to what people
  will use it for, the better)
Step 3)
  make clean the *.o file, keep around the *.gcda files step 2) generated,
  build again, this time with -fprofile-use

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: C++ ABI rebuilds for rawhide too?

2012-02-29 Thread Jakub Jelinek
On Wed, Feb 29, 2012 at 09:38:58AM +0100, Stephan Bergmann wrote:
 On 02/28/2012 09:18 PM, Bruno Wolff III wrote:
 Are the same packages going to get automatically rebuilt in rawhide as
 well as f17?
 
 Btw, does anybody have a pointer to that ABI breakage in gcc 4.7
 for c++ (i.e., was it an inadvertent breakage, or is there a
 planned incompatibility for GCC 4.7)?

http://gcc.gnu.org/ml/gcc-patches/2012-02/msg01219.html

During the development of GCC 4.7, one virtual method of the std::num_get
template was mistakenly moved around, which meant that std::num_get
vtables were ABI incompatible with GCC 4.6 and earlier.  The above
patch fixed that.  So, the rebuilds of everything that includes
the problematic bits/locale_facets.h header are now needed so that
F17 isn't ABI incompatible both with GCC 4.6 and earlier as well as
GCC 4.7 upstream release.

We are sorry about this and are actively working on testing infrastructure
that will catch any similar vtable ABI incompatibilities (the quick hack
scripts to check that showed this was the only problem).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: C++ ABI rebuilds for rawhide too?

2012-02-29 Thread Jakub Jelinek
On Wed, Feb 29, 2012 at 09:50:06AM +0100, Dan Horák wrote:
 Stephan Bergmann píše v St 29. 02. 2012 v 09:38 +0100: 
  On 02/28/2012 09:18 PM, Bruno Wolff III wrote:
   Are the same packages going to get automatically rebuilt in rawhide as
   well as f17?
  
  Btw, does anybody have a pointer to that ABI breakage in gcc 4.7 for 
  c++ (i.e., was it an inadvertent breakage, or is there a planned 
  incompatibility for GCC 4.7)?
 
 from changelog in gcc-4.7.0-0.16.fc17
 - fix vtable for std::num_getchar, std::istreambuf_iteratorchar,
 std::char_traitschar   and vtable for std::num_getwchar_t,
 std::istreambuf_iteratorwchar_t, std::char_traitswchar_t   ABI
 breakage
 
 It was definitely not intentional and we were told that the gcc team
 added new tests

Haven't added yet, but they will be soon, definitely for GCC 4.8.
So far the testing was only manual, attaching script that was used for that:
(./vtable-check.sh version1/libstdc++.a /tmp/version1; ./vtable-check.sh 
version2/libstdc++.a /tmp/version2; diff -upr /tmp/version{1,2})

Jakub


vtable-check.sh
Description: Bourne shell script
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: Why we need redhat_lsb_trigger.c in redhat-lsb package?

2012-03-14 Thread Jakub Jelinek
On Wed, Mar 14, 2012 at 10:08:32AM +0100, Niels de Vos wrote:
 On 03/13/2012 07:04 AM, Xibo Ning wrote:
 The best solution would probably be to replace the %triggerpostun
 with a lua scriptlet, something like this (totally untested and
 you'll need to add the LSB-version somewhere too):
 
 %triggerpostun -p lua -- glibc
 LDSO = /usr/lib/ld.so
 LSBLDSO = /usr/lib/ld. + LSB_VERSION + .so
 %ifarch ia64
 LDSO = /emul/ia32-linux/lib + LSBLDSO
 %fi
 posix.symlink(LDSO, LSBLDSO)

That is not equivalent.  is_ia64 () is true in the statically linked
binary for %ifarch %{ix86} if running on the ia64 CPU (software emulated).

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: RFC: Primary architecture promotion requirements

2012-03-20 Thread Jakub Jelinek
On Tue, Mar 20, 2012 at 03:19:35PM +, Matthew Garrett wrote:
 This is very much a draft, but I'd like to start a discussion regarding 
 what we expect from primary architectures. Feedback not only welcome, 
 but actively desired.

I think the speed of the build hardware should be also part of the criteria,
as all primary architectures are built synchronously.  GCC on x86_64/i686
currently builds often in 2 hours, sometimes in 4 hours if a slower or more
busy box is chosen, but on ARM it regularly builds 2 days.  That is a slow
down factor of 12x-24x, guess for other larger packages it is similar.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: RFC: Primary architecture promotion requirements

2012-03-20 Thread Jakub Jelinek
On Tue, Mar 20, 2012 at 08:58:45AM -0700, Brendan Conoboy wrote:
 On 03/20/2012 08:24 AM, Jakub Jelinek wrote:
 I think the speed of the build hardware should be also part of the criteria,
 as all primary architectures are built synchronously.  GCC on x86_64/i686
 currently builds often in 2 hours, sometimes in 4 hours if a slower or more
 busy box is chosen, but on ARM it regularly builds 2 days.  That is a slow
 down factor of 12x-24x, guess for other larger packages it is similar.
 
 Our current build systems can turn GCC 4.7 around in about 24 hours.
 The enterprise hardware we anticipate using will take that down to
 about 12 hours.  If speed of build hardware is a consideration,
 where do you draw the line?  No secondary arch is going to get to
 the speed of x86_64 in the foreseeable future, so it's effectively a
 way to keep PA an exclusive x86 club.

Looking at last gcc build times (not unusual, though I really remember
arm taking much longer than that, e.g. 4.7.0-0.11.fc17 took almost 17 hours
on both arm architectures), from
http://*koji.fedoraproject.org/packages/gcc/4.7.0/0.20.fc17/data/logs/*/state.log
 :
i6864h18m
x86_64  1h25m
ppc 4h12m
ppc64   4h16m
s3906h27m
s390x   6h04m
armv5tel26h20m
armv7hl 24h17m

So even speeding this up twice means it is still 2x slower than the
slowest other secondary architecture.

 I think the real question is, for the developers of on devel-list,
 how will longer builds for one arch than another affect your
 workflow?  If builds on two architectures start at the same time,
 but one takes longer to finish than the other, how will that impact
 you?  Right now you'll still be able to see and use the results of
 the faster build before the slower build completes, so are you
 materially impacted?

For the builds completed on some architectures, but waiting on others
nothing is moved over to the packages/ dirs.  Yes, you can grab them
from the task directories, but only manually, scripts fetching testsuite
results won't see them, it can't be filed into bodhi, in rawhide isn't
tagged into the buildroots, etc.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: compat-gcc-32

2012-03-24 Thread Jakub Jelinek
On Sat, Mar 24, 2012 at 12:16:24PM -0700, Dave Close wrote:
 How is it possible that Fedora 16 includes package
 compat-gcc-32-3.2.3-debuginfo.i686.rpm but does not appear to include
 the underlying compat-gcc-32-3.2.3.i686.rpm? To what does the debuginfo
 package pertain (it says, This package provides debug information for
 package compat-gcc-32.)? Should I be looking somewhere other than the
 Fedora repositories to find it?

compat-gcc-32 is the name of the src.rpm, compat-libstdc++* is the package
it generates.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: gforth and gcc 4.7

2012-03-26 Thread Jakub Jelinek
On Mon, Mar 26, 2012 at 04:54:05PM +0200, Adrian Reber wrote:
 Trying to build gforth with gcc 4.7 fails currently. The forth engine is
 build but it fails its included tests. The problem is that every newline
 the forth engine writes is replaced with 0x00 as seen in following diff:
 
  010: 6566 696e 6564 2047 4458 2020 594f 5520  efined GDX  YOU 
  020: 5348 4f55 4c44 2053 4545 2054 4845 2053  SHOULD SEE THE S
  030: 5441 4e44 4152 4420 4752 4150 4849 4320  TANDARD GRAPHIC 
 -040: 4348 4152 4143 5445 5253 3a00 2021 2223  CHARACTERS:. !#
  ^^ actual output
 +040: 4348 4152 4143 5445 5253 3a0a 2021 2223  CHARACTERS:. !#
  ^^ expected output
  050: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%'()*+,-./0123
 
 Removing -O2 from the compiler commandline fixes it, but I have no idea
 why this happens. Does anyone have an idea how this can be solved?

If -O0 works and -O2 doesn't, first narrow it down using a binary search
between -O0 and -O2 compiled objects to at least a single compilation
unit, then you could use __attribute__((optimize (0))) (resp.
__attribute__((optimize (2))) ) and/or -fno-inline to narrow it even
further, read the problematic code, see if there aren't any e.g. aliasing
warnings (-O2 enables -fstrict-aliasing), if you don't spot a bug in the
gforth code after this and still suspect the compiler, turn that into
self-contained minimal testcase (for the problematic routine add main
that calls it with the right arguments, make the problematic
routine __attribute__((noinline, noclone)) and stub out anything it calls,
then file a gcc bugreport?

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Re: F-13 libtool broken by gcc update

2010-05-03 Thread Jakub Jelinek
On Mon, May 03, 2010 at 02:30:54PM -0400, Tom Lane wrote:
 F-13 builds requiring libtool are now failing with
 
 DEBUG util.py:256:  libtool-2.2.6-18.fc13.x86_64 from build has depsolving 
 problems
 DEBUG util.py:256:-- Missing Dependency: gcc = 4.4.3 is needed by 
 package libtool-2.2.6-18.fc13.x86_64 (build)
 DEBUG util.py:256:  Error: Missing Dependency: gcc = 4.4.3 is needed by 
 package libtool-2.2.6-18.fc13.x86_64 (build)
 DEBUG util.py:256:   You could try using --skip-broken to work around the 
 problem
 
 apparently as a result of the fact that gcc was updated to 4.4.4 over
 the weekend.  Could we have a fix for this ASAP, please?  And why
 weren't there loud bleats from broken-dependencies checking?

gcc-4.4.4-1.fc13 has just been tagged temporarily into dist-f13-override
so that new libtool could be built.  Likely you tried to built during
that short window or NewRepo has been too slow after it has been untagged
from dist-f13-override already.

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


Re: F-13 libtool broken by gcc update

2010-05-03 Thread Jakub Jelinek
On Mon, May 03, 2010 at 03:35:44PM -0400, Tom Lane wrote:
 Mamoru Tasaka mtas...@ioa.s.u-tokyo.ac.jp writes:
  $ TZ=UTC koji list-tag-history --build=gcc-4.4.4-1.fc13
  Sat May  1 00:57:24 2010: Tagged gcc-4.4.4-1.fc13 with 
  dist-f13-updates-candidate [still active]
  Mon May  3 15:58:06 2010: Tagged gcc-4.4.4-1.fc13 with dist-f13-override
  Mon May  3 17:37:31 2010: Untagged gcc-4.4.4-1.fc13 from dist-f13-override
 
  The dependency was broken only for this 2 hours (perhaps to rebuild libtool 
  for gcc 4.4.4).
  ...
  Once newrepo is created, dependency will be recovered again.
 
 BTW, it's now two hours later and gcc 4.4.4 is still in the buildroot.
 There is no newrepo task running for F-13, and no evidence that one has
 been launched recently.  Perhaps an untag event fails to force a repo
 rebuild?  If so seems like a bug.

So what is
http://koji.fedoraproject.org/koji/taskinfo?taskID=2158992
then?

Jakub
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


  1   2   3   4   5   >