This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/3] arc: Support "nano" build of newlib


Patch applied.

-- Jeff J.

----- Original Message -----
> Add necessary infrastructure to support "nano" build of newlib - optimized
> for code size. ARC aproach to this feature is similiar to ARM's one here.
> 
> libgloss/Changelog:
> 
> 2016-04-29  Anton Kolesov  <anton.kolesov@synopsys.com>
> 
> 	* arc/nano.specs: New file.
> 	* arc/Makefile.in: Support nano.specs.
> 	* arc/nsim.specs: Likewise.
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
> ---
>  libgloss/arc/Makefile.in | 10 +++++++++-
>  libgloss/arc/nano.specs  | 18 ++++++++++++++++++
>  libgloss/arc/nsim.specs  | 10 ++++++++--
>  3 files changed, 35 insertions(+), 3 deletions(-)
>  create mode 100644 libgloss/arc/nano.specs
> 
> diff --git a/libgloss/arc/Makefile.in b/libgloss/arc/Makefile.in
> index ab8ad6d..58f0c57 100644
> --- a/libgloss/arc/Makefile.in
> +++ b/libgloss/arc/Makefile.in
> @@ -58,6 +58,9 @@ NSIM_OBJS = \
>  NSIM_INSTALL = install-nsim
>  NSIM_SCRIPTS = nsim.specs
>  
> +NANO_SCRIPTS = nano.specs
> +NANO_INSTALL = install-nano
> +
>  CFLAGS		= -g
>  
>  # Host specific makefile fragment comes in here.
> @@ -83,7 +86,7 @@ distclean maintainer-clean realclean: clean
>  	rm -f Makefile config.status config.log config.cache *~
>  
>  .PHONY: install info install-info clean-info doc dvi
> -install: $(CRT0_INSTALL) $(NSIM_INSTALL)
> +install: $(CRT0_INSTALL) $(NSIM_INSTALL) $(NANO_INSTALL)
>  
>  # multilibdir may not exist yet - libgcc for ARC depends on libc, hence
>  # newlib/libgloss is built before libgcc. And in parallel build libgloss
>  maybe
> @@ -100,6 +103,11 @@ $(NSIM_INSTALL):
>  	for x in $(NSIM_SCRIPTS); do \
>  	    $(INSTALL_DATA) $(srcdir)/$$x
>  	    $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$$x; done
>  
> +$(NANO_INSTALL):
> +	$(mkinstalldirs) $(DESTDIR)${tooldir}/lib${MULTISUBDIR}
> +	for x in $(NANO_SCRIPTS); do \
> +	    $(INSTALL_DATA) $(srcdir)/$$x
> $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$$x; done
> +
>  doc:
>  info:
>  dvi:
> diff --git a/libgloss/arc/nano.specs b/libgloss/arc/nano.specs
> new file mode 100644
> index 0000000..91ab61d
> --- /dev/null
> +++ b/libgloss/arc/nano.specs
> @@ -0,0 +1,18 @@
> +%rename link                nano_link
> +%rename link_gcc_c_sequence                nano_link_gcc_c_sequence
> +
> +*nano_libc:
> +-lc_nano
> +
> +*nano_libgloss:
> +%{specs=nsim.specs:-lnsim} %{specs=nosys.specs:-lnosys}
> +
> +*link_gcc_c_sequence:
> +%(nano_link_gcc_c_sequence) --start-group %G %(nano_libc) %(nano_libgloss)
> --end-group
> +
> +*link:
> +%(nano_link) %:replace-outfile(-lc -lc_nano) %:replace-outfile(-lg -lg_nano)
> %:replace-outfile(-lstdc++ -lstdc++_nano) %:replace-outfile(-lsupc++
> -lsupc++_nano)
> +
> +*lib:
> +%{!shared:%{g*:-lg_nano} %{!p:%{!pg:-lc_nano}}%{p:-lc_p}%{pg:-lc_p}}
> +
> diff --git a/libgloss/arc/nsim.specs b/libgloss/arc/nsim.specs
> index aa77eea..508bdb2 100644
> --- a/libgloss/arc/nsim.specs
> +++ b/libgloss/arc/nsim.specs
> @@ -1,5 +1,11 @@
> -%rename link_gcc_c_sequence                nsim_link_gcc_c_sequence
> +%rename link_gcc_c_sequence nsim_link_gcc_c_sequence
> +
> +*nsim_libgloss:
> +-lnsim
> +
> +*nsim_libc:
> +%{!specs=nano.specs:-lc} %{specs=nano.specs:-lc_nano}
>  
>  *link_gcc_c_sequence:
> -%(nsim_link_gcc_c_sequence) --start-group %G -lc -lnsim --end-group
> +%(nsim_link_gcc_c_sequence) --start-group %G %(nsim_libc) %(nsim_libgloss)
> --end-group
>  
> --
> 2.8.1
> 
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]