From: Andrea C. O. <and...@gm...> - 2010-03-24 13:25:31
|
ok. On Tue, Mar 23, 2010 at 2:24 PM, Thierry Lafage <thi...@in...> wrote: > Yes, sorry. > Here is the complete patch with CSObject.cs cleanup. > > Sorry for the "noise", > > Thierry Lafage. > > > > Andrea Carlo Ornstein a écrit : >> >> No, I wasn't clear :) >> Something like this: >> >> -o) >> - PARAM="$PARAM $1$2"; >> + PARAM="$PARAM -output $2"; >> shift >> shift >> ;; >> and remove the sed at the end >> >> the script keeps the same input options >> but there is no need of the sed at the end, we just rewrite the option >> when we recognize it >> >> On Tue, Mar 23, 2010 at 2:06 PM, Thierry Lafage <thi...@in...> >> wrote: >> >>> >>> Andrea Carlo Ornstein a écrit : >>> >>>> >>>> Hi, >>>> >>>> I would just use -output in the switch and remove the sed at the end >>>> (keeping the extra arguments '-dll -quiet') >>>> The hack of no space after -o was there just to simplify the sed at >>>> the end of the script, now it is not needed. >>>> >>>> >>> >>> Ok, but I'll have to modify gcc (cil32.h) to make it pass -output to 'as' >>> instead of -o. Do you really want me to introduce such a version >>> dependency? >>> (personnally, I don't mind). >>> >>> >>>> >>>> If you remove that part, you should cleanup also >>>> >>>> >>>> http://clibinutils.svn.sourceforge.net/viewvc/clibinutils/mono-based-binutils/trunk/tools/gcc4cli/utils/CObject.cs?revision=12&view=markup >>>> There is a hack to fixup an error on varargs methods generated by pnet >>>> ilasm. >>>> just remove fix_DOTGNU_Errors() >>>> >>>> >>> >>> Ok, I'll check that. >>> >>> Regards, >>> Thierry. >>> >>>> >>>> Andrea >>>> >>>> On Tue, Mar 23, 2010 at 11:34 AM, Thierry Lafage >>>> <thi...@in...> wrote: >>>> >>>> >>>>> >>>>> Hi Andrea, >>>>> >>>>> Here is a simpler patch for as that is meant to be commited in >>>>> >>>>> >>>>> https://clibinutils.svn.sourceforge.net/svnroot/clibinutils/mono-based-binutils/trunk >>>>> >>>>> Since the svn url says that it is a mono-based version, the test for >>>>> Pnet >>>>> ilasm is surely not worth anymore. >>>>> I also added a space between -o and the ouput file in order not to >>>>> confuse >>>>> with potential -opt or -o<something> ilasm arguments. Otherwise, >>>>> calling >>>>> as >>>>> with -opt gives: "ilasm /ouput:pt" >>>>> >>>>> Comparing to my former patch, I don't propose anymore the -O case >>>>> because, >>>>> since the short bytecode optimizations are done in ld, there is no more >>>>> need >>>>> for the moment to activate optimizations in the assembly pass. >>>>> >>>>> Tell me if it's ok for you, then I'll commit. >>>>> >>>>> Regards, >>>>> >>>>> Thierry Lafage. >>>>> >>>>> >>>>> >>>>> Andrea Carlo Ornstein a écrit : >>>>> >>>>> >>>>>> >>>>>> At the beginning when I did the binutils there was a bug in the >>>>>> release of ilasm. >>>>>> Only the one from Mono trunk was working. >>>>>> That is the only reason why the binutils could use also the Pnet ilasm >>>>>> (You could avoid the build of ilasm from Mono trunk). >>>>>> >>>>>> If it is not the case anymore we can switch all to Mono tools and >>>>>> remove the check in the script. >>>>>> >>>>>> Andrea >>>>>> >>>>>> On Mon, Mar 22, 2010 at 12:11 PM, Thierry Lafage >>>>>> <thi...@in...> wrote: >>>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> I forgot to mention that (Mono) ilasm does not complains (not even a >>>>>>> warning) if you pass it an unknown option; so this should be ok with >>>>>>> older version of ilasm. >>>>>>> Regarding "Pnet ilasm", I don't know, but I've been told that this >>>>>>> option would be abandonned. If this is really the case, then we >>>>>>> should >>>>>>> also remove the "if [ `$ILASM --version | ..." test. Tell me: I can >>>>>>> do >>>>>>> it in this commit. >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> Thierry Lafage. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Thierry Lafage a écrit : >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> Here is a patch for our binutils/as script which converts -O option >>>>>>>> into forthcoming '-opt:ldc' ilasm option. >>>>>>>> >>>>>>>> Since the default behavior is not changed, I should commit soon if >>>>>>>> nobody complains. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Thierry Lafage. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------------------------------------------------ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------------------------------------------------------ >>>>>>>> Download Intel® Parallel Studio Eval >>>>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>>>> proactively, and fine-tune applications for parallel performance. >>>>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------------------------------------------------ >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Gcc4cli-devel mailing list >>>>>>>> Gcc...@li... >>>>>>>> https://lists.sourceforge.net/lists/listinfo/gcc4cli-devel >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------------------------ >>>>>>> Download Intel® Parallel Studio Eval >>>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>>> proactively, and fine-tune applications for parallel performance. >>>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>>> _______________________________________________ >>>>>>> Gcc4cli-devel mailing list >>>>>>> Gcc...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/gcc4cli-devel >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> Index: scripts/as.in >>>>> =================================================================== >>>>> --- scripts/as.in (revision 14) >>>>> +++ scripts/as.in (working copy) >>>>> @@ -23,7 +23,7 @@ >>>>> shift >>>>> ;; >>>>> -o) >>>>> - PARAM="$PARAM $1$2"; >>>>> + PARAM="$PARAM $1 $2"; >>>>> shift >>>>> shift >>>>> ;; >>>>> @@ -34,13 +34,7 @@ >>>>> esac >>>>> done >>>>> >>>>> -if test "x`$ILASM --version | grep Mono | wc -l`" = "x0"; then >>>>> - #needed by Pnet ilasm >>>>> - PARAM=`echo "--format dll $PARAM" | sed 's? -o? -o ?'`; >>>>> -else >>>>> - #needed by Mono ilasm >>>>> - PARAM=`echo "-dll -quiet $PARAM" | sed 's? -o? -output:?'`; >>>>> -fi >>>>> +PARAM=`echo "-dll -quiet $PARAM" | sed 's? -o ? -output:?'`; >>>>> >>>>> CMD="$ILASM $PARAM" >>>>> if test -n "$VERBOSE"; then >>>>> >>>>> >>>>> >>>>> > > Index: tools/gcc4cli/utils/CObject.cs > =================================================================== > --- tools/gcc4cli/utils/CObject.cs (revision 14) > +++ tools/gcc4cli/utils/CObject.cs (working copy) > @@ -15,8 +15,6 @@ > { > MainType = Module.Types["<Module>"]; > FillTables (); > - if (ref_types.Contains ("<ModuleExtern>")) > - fix_DOTGNU_Errors (); > } > > internal CObject (string name, AssemblyResolver asm_resolver) > @@ -30,30 +28,6 @@ > Module.Types.Add (MainType); > } > > - void fix_DOTGNU_Errors () > - { > - foreach (MethodDefinition method in MainType.Methods) { > - foreach (Instruction instr in method.Body.Instructions) { > - if ( instr.OpCode.OperandType == > OperandType.InlineMethod > - || (instr.OpCode.OperandType == > OperandType.InlineTok && instr.Operand is MethodReference)) { > - MethodReference mref = instr.Operand as > MethodReference; > - if (mref.DeclaringType.Name == "<ModuleExtern>") { > - string m_name = mref.Name; > - if (def_symbols.Contains (m_name)) { > - mref.DeclaringType = > ((MethodReference)def_symbols[m_name]).DeclaringType; > - } > - else if (private_symbols.Contains (m_name)) { > - mref.DeclaringType = > ((MethodReference)private_symbols[m_name]).DeclaringType; > - } > - else > - throw new Exception ("Error in hack for > DOTGNU"); > - } > - } > - } > - } > - ref_types.Remove ("<ModuleExtern>"); > - } > - > static int renamer_id = 0; > > bool MethodIsVarArg(MethodReference method) > Index: scripts/as.in > =================================================================== > --- scripts/as.in (revision 14) > +++ scripts/as.in (working copy) > @@ -23,7 +23,7 @@ > shift > ;; > -o) > - PARAM="$PARAM $1$2"; > + PARAM="$PARAM -output:$2"; > shift > shift > ;; > @@ -34,13 +34,7 @@ > esac > done > > -if test "x`$ILASM --version | grep Mono | wc -l`" = "x0"; then > - #needed by Pnet ilasm > - PARAM=`echo "--format dll $PARAM" | sed 's? -o? -o ?'`; > -else > - #needed by Mono ilasm > - PARAM=`echo "-dll -quiet $PARAM" | sed 's? -o? -output:?'`; > -fi > +PARAM="-dll -quiet $PARAM" > > CMD="$ILASM $PARAM" > if test -n "$VERBOSE"; then > > |