svn commit: r303988 - head/lib/libc/gen

Bryan Drewery bdrewery at FreeBSD.org
Thu Aug 25 16:24:21 UTC 2016


On 8/25/16 9:17 AM, Guido Falsi wrote:
> On 08/25/16 18:05, Bryan Drewery wrote:
>> On 8/25/16 1:27 AM, Guido Falsi wrote:
>>> On 08/24/16 21:49, Ed Schouten wrote:
>>>> 2016-08-24 20:30 GMT+02:00 Bryan Drewery <bdrewery at freebsd.org>:
>>>>> That would only fix stable/11, stable/10, stable/9, releng/11.0.
>>>>>
>>>>> It won't fix releng/10.3, releng/10.2, releng/10.1, releng/9.3, etc...
>>>>> without an EN.
>>>>>
>>>>> It won't fix stable/11 - 1, stable/10 - 1, etc.
>>>>>
>>>>> It will never fix releng/8.4 (unsupported releases) since so@ won't EN
>>>>> to those.  People do sometimes need to build these older releases still.
>>>>>
>>>>> It creates a line in the sand where we can never build checkouts older
>>>>> than where the fix was at.  So I don't think it is the appropriate fix.
>>>>
>>>> Good point!
>>>>
>>>> Just for the record: Bryan and I just discussed this matter in more
>>>> detail on IRC. We came up with a workaround that should be pretty
>>>> good.
>>>>
>>>> Attached is a patch for <libgen.h> that adds some extra logic, so that
>>>> any calls to basename() and dirname() will expand to calls to
>>>> __old_basename() and __old_dirname(). Using __sym_compat(), these will
>>>> cause the compiler to generate calls to basename at FBSD_1.0 and
>>>> dirname at FBSD_1.0.
>>>>
>>>> According to Bryan, this fixes the problems he was experiencing.
>>>>
>>>
>>> I just tried using the attached patch to build a nanobsd image, host is
>>> amd64 head at r304773 with this patch applied, target is i386
>>> releng/11.0 at r304729.
>>>
>>
>> What did you apply the patch to?
>>
>> You need to apply to the source tree, then do a buildworld/installworld
>> for the host, then try nanobsd.
> 
> I did apply it to the source tree of the host machine, and did not apply
> it to the nanobsd sources.
> 
> The error message is very different from the previous one and involves
> symbol versioning.
> 
>>
>>> I've got it failing early during build:
>>>
>>> --- _bootstrap-tools-usr.bin/xinstall ---
>>> xinstall.o: In function `install':
>>> /usr/local/nanobsd/rr-trunk/src/usr.bin/xinstall/xinstall.c:(.text+0xf55):
>>> undefined reference to `basename at FBSD_1.0'

readelf -a /lib/libc.so.7|grep basename ?

>>> cc: error: linker command failed with exit code 1 (use -v to see invocation)
>>> *** [xinstall] Error code 1
>>>
>>> make[3]: stopped in /usr/local/nanobsd/rr-trunk/src/usr.bin/xinstall
>>> 1 error
>>>
>>> make[3]: stopped in /usr/local/nanobsd/rr-trunk/src/usr.bin/xinstall
>>> *** [_bootstrap-tools-usr.bin/xinstall] Error code 2
>>>
>>> Did I miss some needed procedure?
>>>
>>> Thanks!
>>>
>>
>>
> 
> 


-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20160825/47628d26/attachment.sig>


More information about the svn-src-all mailing list