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, libgloss] Create nosys.specs


Thanks for applying and reminding. I'll do that since now on.

- Joey

On Wed, Sep 18, 2013 at 4:41 AM, Jeff Johnston <jjohnstn@redhat.com> wrote:
> Patch added in manually.  Please attach patches rather than including them
> in your message.  Line wrapping sometimes occurs from the mail program and
> these patches cannot be applied cleanly.  In your case, the last
> continuation character got wrapped and the patch did not apply past that
> point).
>
> -- Jeff J.
>
>
> On 09/12/2013 11:04 AM, Joey Ye wrote:
>>
>> Bare-metal toolchain users often run into missing libgloss symbols
>> problem.
>> The typical reason is that -lnosys isn't given in the right place. For
>> example:
>>
>> # this works
>> $ arm-none-eabi-gcc a.o -lc -lnosys -o a.axf
>>
>> # putting object file at end of option, it doesn't work
>> $ arm-none-eabi-gcc -lc -lnosys -o a.axf a.o
>> libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
>> sbrkr.c:(.text._sbrk_r+0x12): undefined reference to `_sbrk'
>>
>> This patch introduces nosys.specs to group -lnosys with -lc, which is
>> quite
>> similar to rdimon.specs. With this patch, following simple command line
>> will
>> work:
>> $ arm-none-eabi-gcc -specs=nosys.specs -o a.axf a.o
>>
>> OK to trunk?
>>
>> ChangeLog:
>> libnosys/Makefile.in: install nosys.specs.
>> libnosys/nosys.specs: New specs.
>>
>> diff --git a/libgloss/libnosys/Makefile.in b/libgloss/libnosys/Makefile.in
>> index ff4c416..22828a4 100644
>> --- a/libgloss/libnosys/Makefile.in
>> +++ b/libgloss/libnosys/Makefile.in
>> @@ -77,6 +77,7 @@ GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
>>         then echo -L${objroot}/../gcc ; fi`
>>
>>   OUTPUTS = libnosys.a
>> +SPECS = ${srcdir}/nosys.specs
>>
>>   # Host specific makefile fragment comes in here.
>>   @host_makefile_frag@
>> @@ -101,7 +102,7 @@ distclean maintainer-clean realclean: clean
>>
>>   .PHONY: install info install-info clean-info
>>   install:
>> -       @for outputs in ${OUTPUTS}; do\
>> +       @for outputs in ${OUTPUTS} ${SPECS}; do\
>>          mkdir -p $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
>>          $(INSTALL_DATA) $${outputs}
>> $(DESTDIR)$(tooldir)/lib${MULTISUBDIR};
>> \
>>         done
>> diff --git a/libgloss/libnosys/nosys.specs b/libgloss/libnosys/nosys.specs
>> new file mode 100644
>> index 0000000..dffc28d
>> --- /dev/null
>> +++ b/libgloss/libnosys/nosys.specs
>> @@ -0,0 +1,7 @@
>> +%rename lib libc
>> +
>> +*libgloss:
>> +-lnosys
>> +
>> +*lib:
>> +--start-group %(libc) %(libgloss) --end-group
>>
>>
>>
>


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