clang vs free software

2014-11-22 Thread Ruben Safir
Helmut Eller :
> > If nobody bothers with even
> > considering the question, it would appear that it is not all that
> > important...
> 
> Maybe nobody bothers because using clang is easier than to fight with
> FSF policies.

<>

It is never a good idea to exclude political and social ramifications
from the software design and use decisions...

It so happens that over the long hall, the free software ends up being
technologically superiormost often.  But this is besides the point.


<>


Clearly this is a complete break off now of the BSD community but there
is another half of this story, because the platform that most of us have
gotten compfortable with over the last decade is now being flanked on
several levels for which the compiler keychain is maybe just the last
straw.  I think it might be necessary in the near future to just break
with the current "Linux" platform altogether, and maybe rebuild a BSD
based system with the FSF tool kit and start there as a new base.





<>

It is just another compiler in order to make non-free software.  It is
the free software platform as a whole that is being seriously strained.


<>

Uh huh.  You know what, it won't matter with UEFI and if systemd
continues to absorb the entire GNU toolkit.  It is not just BSD that
will no longer have GNU/Roots The GNU/Linux is almost dead in its
own right.

<>


[QUOTE]"I'm an engineer. I choose the best tool for the job, politics be
damned."

You must be a stupid engineer then, because politcs and technology have
been attacted at the hip since the 1st dynasty in Ancient Egypt. I guess
you missed that one." [/QUOTE]



Right now, it is hard to find a distribution that functions, and they
have less GNU tools on them every day.



<<
As I've said before, I don't personally care who wins; either tool
will serve my needs.  I would prefer to see both flourish and 
compete with each other. But that's not where things are heading  
unless GCC ups its game.>>

That won't even scratch the surface.  Consider this...

UEFI puts a operating system between you and your hardware.  Without a
secure boot, it is a security flaw...outright.  WITH a secure boot, it
is no better than the Apple Appstore because you can't change the
binaries and expect them to be signable.

And then you have systemd, which is eating every peice of GNUtoolkit it
can find, and then some.  In fact, systemd is nearly a shelless
operating system, and it certain doesn't need GCC, or the GNU toolkit.
In fact, it smothers the need for a toolkit since all the hackable parts
are being rounded up.  It's stated goal is to make all distriubutions
identical

Boy, this is a F$$$thyylking innovatoin if I ever saw one.  Who needs a
compiler when you have a locked down Operating System that you have to
beg for a TCP Socket from.

And then there is android, and Chromium, the browser that spies on you
(and YES the free version DOES spy on you), and Firefox 
feels like it is dieing...

Java and MYSQL were eaten by Oracle

This is not a bright time in the world.  I feel earnestly bad for the
youngsters growing up in this, and that includes my children and
grandchildren.

There is a need for some bold action.  But fixing GCC for some marginal
improvements at best... it needs to be done.  It always needs to be
done.  But we need something else as well.


Ruben


-- 
-- 
So many immigrant groups have swept through our town
that Brooklyn, like Atlantis, reaches mythological
proportions in the mind of the world - RI Safir 1998
http://www.mrbrklyn.com 

DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002
http://www.nylxs.com - Leadership Development in Free Software
http://www2.mrbrklyn.com/resources - Unpublished Archive 
http://www.coinhangout.com - coins!
http://www.brooklyn-living.com 

Being so tracked is for FARM ANIMALS and and extermination camps, 
but incompatible with living as a free human being. -RI Safir 2013



Merging the ./config directory between GCC and Binutils

2014-11-22 Thread Jan-Benedict Glaw
Hi!

Yesterday, an outstanding fix was committed to the GCC repo for a not
correctly regenerated file.  Now that that's fixed, I'll merge the two
./config directories (unfortunately, both the Binutils and the GCC
tree gained commits that weren't synced) and come up with a patch.

  I hope that there won't be too many commits in the mean time, to
produce a lot of fuzz :)  Once that's in sync again, I'll keep a
script running to check that and report missing commits in any of the
trees.

MfG, JBG

-- 
  Jan-Benedict Glaw  jbg...@lug-owl.de  +49-172-7608481
  Signature of:   Wenn ich wach bin, träume ich.
  the second  :


signature.asc
Description: Digital signature


Re: gcc-4_9 inlines less funcs than gcc-4_8 because of used_as_abstract_origin flag.

2014-11-22 Thread Jan Hubicka
Hi,
this is patch I commited to mainline

2014-11-22  Jan Hubicka  

* ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
as having abstract origin used.
* ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract 
origin check.
(clone_inlined_nodes): Copy abstract originflag.
* ipa-cgraph.c (working): Use get_create to get abstract origin node.
Index: ipa.c
===
--- ipa.c   (revision 217890)
+++ ipa.c   (working copy)
@@ -360,9 +360,18 @@ symbol_table::remove_unreachable_nodes (
  && DECL_ABSTRACT_ORIGIN (node->decl))
{
  struct cgraph_node *origin_node
- = cgraph_node::get_create (DECL_ABSTRACT_ORIGIN (node->decl));
- origin_node->used_as_abstract_origin = true;
- enqueue_node (origin_node, &first, &reachable);
+ = cgraph_node::get (DECL_ABSTRACT_ORIGIN (node->decl));
+ if (origin_node && !origin_node->used_as_abstract_origin)
+   {
+ origin_node->used_as_abstract_origin = true;
+ gcc_assert (!origin_node->prev_sibling_clone);
+ gcc_assert (!origin_node->next_sibling_clone);
+ for (cgraph_node *n = origin_node->clones; n;
+  n = n->next_sibling_clone)
+   if (n->decl == DECL_ABSTRACT_ORIGIN (node->decl))
+ n->used_as_abstract_origin = true;
+ enqueue_node (origin_node, &first, &reachable);
+   }
}
  /* If any symbol in a comdat group is reachable, force
 all externally visible symbols in the same comdat
Index: ipa-inline-transform.c
===
--- ipa-inline-transform.c  (revision 217890)
+++ ipa-inline-transform.c  (working copy)
@@ -100,7 +100,6 @@ can_remove_node_now_p_1 (struct cgraph_n
  the callgraph so references can point to it.  */
   return (!node->address_taken
  && !node->has_aliases_p ()
- && !node->used_as_abstract_origin
  && node->can_remove_if_no_direct_calls_p ()
  /* Inlining might enable more devirtualizing, so we want to remove
 those only after all devirtualizable virtual calls are processed.
@@ -218,6 +217,7 @@ clone_inlined_nodes (struct cgraph_edge
   update_original, vNULL, true,
   inlining_into,
   NULL);
+ n->used_as_abstract_origin = e->callee->used_as_abstract_origin;
  e->redirect_callee (n);
}
 }
Index: lto-cgraph.c
===
--- lto-cgraph.c(revision 217890)
+++ lto-cgraph.c(working copy)
@@ -877,7 +877,8 @@ compute_ltrans_boundary (lto_symtab_enco
   if (DECL_ABSTRACT_ORIGIN (node->decl))
{
  struct cgraph_node *origin_node
- = cgraph_node::get (DECL_ABSTRACT_ORIGIN (node->decl));
+ = cgraph_node::get_create (DECL_ABSTRACT_ORIGIN (node->decl));
+ origin_node->used_as_abstract_origin = true;
  add_node_to (encoder, origin_node, true);
}
 }


Re: gcc-4_9 inlines less funcs than gcc-4_8 because of used_as_abstract_origin flag.

2014-11-22 Thread Wei Mi
Thanks for the fix. Is it ok to backport it to gcc-4_9?

Thanks,
Wei.

On Sat, Nov 22, 2014 at 1:08 PM, Jan Hubicka  wrote:
> Hi,
> this is patch I commited to mainline
>
> 2014-11-22  Jan Hubicka  
>
> * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline 
> clones
> as having abstract origin used.
> * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract 
> origin check.
> (clone_inlined_nodes): Copy abstract originflag.
> * ipa-cgraph.c (working): Use get_create to get abstract origin node.
> Index: ipa.c
> ===
> --- ipa.c   (revision 217890)
> +++ ipa.c   (working copy)
> @@ -360,9 +360,18 @@ symbol_table::remove_unreachable_nodes (
>   && DECL_ABSTRACT_ORIGIN (node->decl))
> {
>   struct cgraph_node *origin_node
> - = cgraph_node::get_create (DECL_ABSTRACT_ORIGIN (node->decl));
> - origin_node->used_as_abstract_origin = true;
> - enqueue_node (origin_node, &first, &reachable);
> + = cgraph_node::get (DECL_ABSTRACT_ORIGIN (node->decl));
> + if (origin_node && !origin_node->used_as_abstract_origin)
> +   {
> + origin_node->used_as_abstract_origin = true;
> + gcc_assert (!origin_node->prev_sibling_clone);
> + gcc_assert (!origin_node->next_sibling_clone);
> + for (cgraph_node *n = origin_node->clones; n;
> +  n = n->next_sibling_clone)
> +   if (n->decl == DECL_ABSTRACT_ORIGIN (node->decl))
> + n->used_as_abstract_origin = true;
> + enqueue_node (origin_node, &first, &reachable);
> +   }
> }
>   /* If any symbol in a comdat group is reachable, force
>  all externally visible symbols in the same comdat
> Index: ipa-inline-transform.c
> ===
> --- ipa-inline-transform.c  (revision 217890)
> +++ ipa-inline-transform.c  (working copy)
> @@ -100,7 +100,6 @@ can_remove_node_now_p_1 (struct cgraph_n
>   the callgraph so references can point to it.  */
>return (!node->address_taken
>   && !node->has_aliases_p ()
> - && !node->used_as_abstract_origin
>   && node->can_remove_if_no_direct_calls_p ()
>   /* Inlining might enable more devirtualizing, so we want to remove
>  those only after all devirtualizable virtual calls are processed.
> @@ -218,6 +217,7 @@ clone_inlined_nodes (struct cgraph_edge
>update_original, vNULL, true,
>inlining_into,
>NULL);
> + n->used_as_abstract_origin = e->callee->used_as_abstract_origin;
>   e->redirect_callee (n);
> }
>  }
> Index: lto-cgraph.c
> ===
> --- lto-cgraph.c(revision 217890)
> +++ lto-cgraph.c(working copy)
> @@ -877,7 +877,8 @@ compute_ltrans_boundary (lto_symtab_enco
>if (DECL_ABSTRACT_ORIGIN (node->decl))
> {
>   struct cgraph_node *origin_node
> - = cgraph_node::get (DECL_ABSTRACT_ORIGIN (node->decl));
> + = cgraph_node::get_create (DECL_ABSTRACT_ORIGIN (node->decl));
> + origin_node->used_as_abstract_origin = true;
>   add_node_to (encoder, origin_node, true);
> }
>  }


Re: gcc-4_9 inlines less funcs than gcc-4_8 because of used_as_abstract_origin flag.

2014-11-22 Thread Jan Hubicka
> Thanks for the fix. Is it ok to backport it to gcc-4_9?
Yes, it is OK assuming that there are no problems with the patch for a week.
(it ought to be safe)

Honza