[patch ld/binutils]: Fix PR/13710 for supporting broken user .def-file generation
Kai Tietz
ktietz70@googlemail.com
Wed Feb 22 16:13:00 GMT 2012
ping
2012/2/20 Kai Tietz <ktietz70@googlemail.com>:
> Hi,
>
> this patch re-enables that LIBRARY definition comes after
> EXPORTS-section. This behavior
> needs to be allowed to support broken logic in libtool and some other
> projects creating .def
> files. The standard definition of .def files can be found at
> http://msdn.microsoft.com/en-us/library/d91k01sh%28v=vs.80%29.aspx
>
> The consequence of this patch is, that we don't allow export/import
> names of "LIBRARY", nor we support
> by it that a library is named "LIBRARY.*".
>
> ChangeLog binutils/
>
> 2012-02-20 Kai Tietz <ktietz@redhat.com>
>
> PR binutils/13710
> * defparse.y (keyword_as_name): Disable LIBRARY
> keyword.
>
> ChangeLog ld/
>
> 2012-02-20 Kai Tietz <ktietz@redhat.com>
>
> PR binutils/13710
> * deffilep.y (keyword_as_name): Disable LIBRARY
> keyword.
>
> Tested for i686-w64-mingw32, x86_64-w64-mingw32, and i686-pc-cygwin.
> Ok for apply?
>
> Regards,
> Kai
>
> Index: binutils/defparse.y
> ===================================================================
> RCS file: /cvs/src/src/binutils/defparse.y,v
> retrieving revision 1.13
> diff -u -r1.13 defparse.y
> --- binutils/defparse.y 11 Feb 2012 20:02:02 -0000 1.13
> +++ binutils/defparse.y 20 Feb 2012 07:36:21 -0000
> @@ -153,7 +153,9 @@
> ;
>
> keyword_as_name: NAME { $$ = "NAME"; }
> - | LIBRARY { $$ = "LIBRARY"; }
> +/* Disabled LIBRARY keyword for a quirk in libtool. It places LIBRARY
> + command after EXPORTS list, which is illegal by specification.
> + | LIBRARY { $$ = "LIBRARY"; } */
> | DESCRIPTION { $$ = "DESCRIPTION"; }
> | STACKSIZE { $$ = "STACKSIZE"; }
> | HEAPSIZE { $$ = "HEAPSIZE"; }
> Index: ld/deffilep.y
> ===================================================================
> RCS file: /cvs/src/src/ld/deffilep.y,v
> retrieving revision 1.39
> diff -u -r1.39 deffilep.y
> --- ld/deffilep.y 19 Feb 2012 21:18:08 -0000 1.39
> +++ ld/deffilep.y 20 Feb 2012 07:36:21 -0000
> @@ -249,7 +249,11 @@
> | EXPORTS { $$ = "EXPORTS"; }
> | HEAPSIZE { $$ = "HEAPSIZE"; }
> | IMPORTS { $$ = "IMPORTS"; }
> - | LIBRARY { $$ = "LIBRARY"; }
> +/* Disable LIBRARY keyword as valid symbol-name. This is necessary
> + for libtool, which places this command after EXPORTS command.
> + This behavior is illegal by specification, but sadly required by
> + by compatibility reasons.
> + | LIBRARY { $$ = "LIBRARY"; } */
> | NAME { $$ = "NAME"; }
> | NONAMEU { $$ = "NONAME"; }
> | NONAMEL { $$ = "noname"; }
--
| (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination
More information about the Binutils
mailing list