Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 3 Oct 2017 12:38:49 +0200
From: Didier Kryn <kryn@...p3.fr>
To: musl@...ts.openwall.com
Subject: Re: musl-cross-make doesn't install gcc binaries

Le 03/10/2017 à 11:37, Szabolcs Nagy a écrit :
> * Didier Kryn <kryn@...p3.fr> [2017-10-03 10:18:58 +0200]:
>
>> Le 03/10/2017 à 10:11, Didier Kryn a écrit :
>>> Le 02/10/2017 à 17:57, Rich Felker a écrit :
>>>>>        I have recently discovered the existence of musl-cross-make and
>>>>> thought it would be a great way to upgrade my toolchain (forgetting
>>>>> temporarily Ada). I downloaded it in my musl chroot. It built
>>>>> without error, which is a pretty new experience for me -
>>>>> congratulations! But, after make install, only binutils' binaries
>>>>> are installed:
>>>>>
>>>>> /# ls /usr/pkg/x86_64-linux-musl
>>>>> bin  include  lib
>>>>> /# ls /usr/pkg/x86_64-linux-musl/bin
>>>>> ar  as  ld  ld.bfd  nm  objcopy  objdump  ranlib  readelf strip
>>>>>
>>>>>       The gcc binaries seem to be in
>>>>> musl-cross-make/build/local/x86_64-linux-musl/obj_toolchain/gcc
>>>>> (cc1,  cc1plus,  gcc-ar,  gcc-cross etc). Are these the final gcc
>>>>> binaries or intermediate tools?
>>>> What "make install" command line did you use, and what options (if
>>>> any) in config.mak? You need to specify the output directory where the
>>>> toolchain will be installed; it would not appear under /usr/pkg unless
>>>> you configured it as such.
>>>>
>>>      I just ran 'make'; and, when it was finished, 'make install'
>>>
>>>      Everything is configured in config.mak. Here it is (I've removed the
>>> comments):
>>>
>>> # config.mak
>>> TARGET = x86_64-linux-musl
>>> OUTPUT = /usr/pkg
>>> DL_CMD = wget -c -O
>>>
>>> COMMON_CONFIG += CC="gcc -static --static" CXX="g++ -static --static"
>>> COMMON_CONFIG += CFLAGS="-O2" CXXFLAGS="-O2"
>>> COMMON_CONFIG += --disable-nls
>>> GCC_CONFIG += --enable-languages=c,c++
>>> GCC_CONFIG += --disable-multilib
>>>
>>>      'make install' creates /usr/pkg/x86_64-linux-musl, and the subdirs
>>> bin, include and lib. The issue is that, in bin, only binutils'
>>> executables are installed.
>>>
>>>      Thanks.
>>>                              Didier
>>>
>>      I forgot to mention that everything looks fine in subdirs include and
>> lib. Only the gcc executables are missing.
>>
> it's a cross compiler, so you won't have gcc, but x86_64-linux-musl-gcc
     But it isn't installed and, BTW, the installed binutils executables 
aren't prefixed with x86_64-linux-musl-

     When I remove the line 'OUTPUT = /usr/pkg'  in config.mak, to leave 
it use the default, then the installation occurs in subdir 'output' of 
the source tree, and it seems much more familiar to me, with more 
subdirs, such as libexec, share and x86_64-linux-musl, which are not 
present otherwise. And all the executables are correctly prefixed.

     Therefore the problem is restricted to the processing of the custom 
install dir. Given the cross-compiler is sysrooted, this isn't a big 
deal, but better to know.

     Didier



Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.