From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/10365 Path: news.gmane.org!.POSTED!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: ./configure errors witn musl-gcc (zlib library conflict when building openssh) Date: Fri, 5 Aug 2016 19:08:16 -0400 Message-ID: <20160805230816.GQ15995@brightrain.aerifal.cx> References: <66c1b284-a9ae-774f-579f-fac0d1c6193e@gmail.com> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: blaine.gmane.org 1470438525 19869 195.159.176.226 (5 Aug 2016 23:08:45 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 5 Aug 2016 23:08:45 +0000 (UTC) User-Agent: Mutt/1.5.21 (2010-09-15) To: musl@lists.openwall.com Original-X-From: musl-return-10378-gllmg-musl=m.gmane.org@lists.openwall.com Sat Aug 06 01:08:41 2016 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1bVoEC-0003Gn-V1 for gllmg-musl@m.gmane.org; Sat, 06 Aug 2016 01:08:33 +0200 Original-Received: (qmail 5348 invoked by uid 550); 5 Aug 2016 23:08:31 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 5327 invoked from network); 5 Aug 2016 23:08:30 -0000 Content-Disposition: inline In-Reply-To: <66c1b284-a9ae-774f-579f-fac0d1c6193e@gmail.com> Original-Sender: Rich Felker Xref: news.gmane.org gmane.linux.lib.musl.general:10365 Archived-At: On Fri, Aug 05, 2016 at 06:32:14PM -0400, Assaf Gordon wrote: > Hello, > > I'm trying to build openssh on Ubuntu with musl-gcc, and encountered a problem during "./configure" due to required library (zlib) which causes conflicts between the system's glibc and musl-libc. > > There is probably a simple solution, but I couldn't find one. > > The system is Ubuntu 14.04 LTS, gcc 4.8.4. > musl is 1.1.15 built from source, installed to /usr/local/musl . > > First, I build zlib using musl-gcc: > > wget http://zlib.net/zlib-1.2.8.tar.gz > tar -xf zlib-1.2.8.tar.gz > cd zlib-1.2.8 > CC=musl-gcc ./configure > make > > This works well (note I did not install it with 'sudo make install'). > > Second, I try to build openssh: > > git clone https://github.com/openssh/openssh-portable > cd openssh-portable > autoreconf -if > CC=musl-gcc ./configure --without-stackprotect --with-zlib=/home/ubuntu/sources/zlib-1.2.8 > But this fails with: > > checking zlib.h usability... yes > checking zlib.h presence... yes > checking for zlib.h... yes > checking for deflate in -lz... yes > checking for possibly buggy zlib... yes > configure: error: *** zlib too old - check config.log *** > Your reported zlib version has known security problems. It's possible your > vendor has fixed these problems without changing the version number. If you > are sure this is the case, you can disable the check by running > "./configure --without-zlib-version-check". > If you are in doubt, upgrade zlib to version 1.2.3 or greater. > See http://www.gzip.org/zlib/ for details. > > The problem is not that zlib is "too old", but that the wrong shard-object is used (it uses the system's one). > From config.log: > > configure:9002: checking for possibly buggy zlib > configure:9041: musl-gcc -o conftest -g -O2 -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -I/home/ubuntu/sources/zlib-1.2.8 -L/home/ubuntu/sources/zlib-1.2.8 -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack conftest.c -lz >&5 > configure:9041: $? = 0 > configure:9041: ./conftest > Error relocating /lib/x86_64-linux-gnu/libz.so.1: __snprintf_chk: symbol not found > Error relocating /lib/x86_64-linux-gnu/libz.so.1: __vsnprintf_chk: symbol not found > configure:9041: $? = 127 > configure: program exited with status 127 Somehow musl-gcc is not correctly replacing the compiler's builtin library path. It's likely something weird Ubuntu's gcc build is doing for their multilib/multiarch support, but hard to say specifically what. Can you build a hello world program succesfully? What does musl-gcc -v hello.c say, given a hello world program hello.c? Rich