Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Wed, 24 Jan 2018 18:27:45 -0800 (PST)
From: Po-yi Wang <player@....bc.ca>
To: musl@...ts.openwall.com
Subject: Re: any one managed to compile and run xz-5.0.8 or xz-5.2.3
 ?



On Thu, 25 Jan 2018, Will Dietz wrote:

> Those seem to all be statically linked, do any dynamically linked programs
> work?
>
> This is particularly relevant since the crash occurs in early part of the
> dynamic linker/loader.

ok, i went back and check all 3 binaries, all of them dynamically linked 
for some reason, still i486 and arm worked (well "--version" worked). only 
ppc version hanged or seg faulted. even though i have passed 
LDFLAGS="-static" to configure, it still insist on compiling dynamically.
i managed to fix it with explicit command instead of make:
cd src/xz/
make clean ; LDFLAGS="-static"  CC=musl-gcc make
LDFLAGS="-static"  musl-gcc -static -std=gnu99 -pthread -Wall -Wformat=2 
-Wfloat-equal \
  -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast \
  -Wwrite-strings -Waggregate-return -Wstrict-prototypes \
  -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn \
  -Wredundant-decls -Os -s -o xz xz-args.o xz-coder.o xz-file_io.o \
  xz-hardware.o xz-list.o xz-main.o xz-message.o xz-options.o \
  xz-signals.o xz-suffix.o xz-util.o xz-tuklib_open_stdxxx.o \
  xz-tuklib_progname.o xz-tuklib_exit.o xz-tuklib_cpucores.o \
  xz-tuklib_mbstr_width.o xz-tuklib_mbstr_fw.o 
../../src/liblzma/.libs/liblzma.a -pthread

now all three targets worked (statically).
thanks.

>
> On Wed, Jan 24, 2018, 7:38 PM Po-yi Wang <player@....bc.ca> wrote:
>
>>
>>
>> On Wed, 24 Jan 2018, Rich Felker wrote:
>>
>>> On Wed, Jan 24, 2018 at 04:18:59PM -0800, Po-yi Wang wrote:
>>>> hi
>>>>
>>>> any one managed to compile and run xz with musl on ppc target ?
>>>> i've managed to compile and run "xz --version" on i486 and arm
>>>> targets, but not on ppc target. i've tried gcc-3.4.5 and gcc-4.1.2.
>>>> gcc-3.4.5 version simply hangs, while gcc-4.1.2 version seg faults --
>>>> with seg fault, i can at least use gdb to get some info out. i do
>>>> not know how to use gdb to trace a hanged program. anyway, this is
>>>> the output for gcc-4.1.2 compiled version. (xz-5.0.8):
>>>
>>> Where did you get gcc 3.4.5 or 4.1.2 toolchains for musl ppc? Is any
>>> other software working when compiled with them? If you're not using a
>>> real cross or native musl toolchain but the musl-gcc wrapper, it
>>> probably lacks a lot of stuff it needs to work on ppc. In particular a
>>> ppc toolchain that will be used for dynamic-linking needs to be
>>> configured to always use "secure-plt", and whether static or dynamic,
>>> it needs to be using 64-bit long double. You should have hit an error
>>> configuring musl here if the compiler doesn't match:
>>>
>>>    checking whether compiler's long double definition matches float.h...
>>>
>>> Please provide more details.
>>>
>>>> gdb src/xz/xz
>>>>
>>>> GNU gdb (GDB) 7.12.1
>>>> Copyright (C) 2017 Free Software Foundation, Inc.
>>>> License GPLv3+: GNU GPL version 3 or later
>>>> <http://gnu.org/licenses/gpl.html>
>>>> This is free software: you are free to change and redistribute it.
>>>> There is NO WARRANTY, to the extent permitted by law.  Type "show
>> copying"
>>>> and "show warranty" for details.
>>>> This GDB was configured as "powerpc-unknown-linux-gnu".
>>>> Type "show configuration" for configuration details.
>>>> For bug reporting instructions, please see:
>>>> <http://www.gnu.org/software/gdb/bugs/>.
>>>> Find the GDB manual and other documentation resources online at:
>>>> <http://www.gnu.org/software/gdb/documentation/>.
>>>> For help, type "help".
>>>> Type "apropos word" to search for commands related to "word"...
>>>> Reading symbols from src/xz/xz...done.
>>>> (gdb) run --version
>>>> Starting program: /tmp/build/xz-5.0.8/src/xz/xz --version
>>>>
>>>> Program received signal SIGSEGV, Segmentation fault.
>>>> 0x4806fab8 in _dlstart_c (sp=0xbffff4a0, dynv=0x480b2ae4) at
>>>> ldso/dlstart.c:146
>>>> 146             GETFUNCSYM(&dls2, __dls2, base+dyn[DT_PLTGOT]);
>>>> (gdb) bt
>>>> #0  0x4806fab8 in _dlstart_c (sp=0xbffff4a0, dynv=0x480b2ae4)
>>>>     at ldso/dlstart.c:146
>>>> #1  0x480778ec in _dlstart () from /lib/ld-musl-powerpc-sf.so.1
>>>> (gdb) quit
>>>> A debugging session is active.
>>>>
>>>>         Inferior 1 [process 22188] will be killed.
>>>>
>>>> Quit anyway? (y or n) y
>>>
>>> This is an odd place to crash, and if it's crashing here it's almost
>>> surely crashing for all programs, not just xz, since it hasn't gotten
>>> to the point of looking at the program being run. It could be an issue
>>> with very-outdated binutils doing something funny at link time linking
>>> libc.so.
>> actually other program compiled so far all works: (at least --version
>> works)
>> res/ppc/bash-4.4:         ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/dbclient:         ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/dropbear:         ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/dropbearconvert:  ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/dropbearkey:      ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/ftp-0.17:         ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/make-3.80:        ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/make-4.1:         ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/msgfmt:           ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/msgmerge:         ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/ntpserver:        ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/patch-2.7.5:      ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/scp:              ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/tar-1.22:         ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/xxd-5.7:          ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>> res/ppc/xxxd:             ELF 32-bit MSB executable, PowerPC or cisco
>> 4500, version 1 (SYSV), statically linked, stripped
>>
>>
>>>
>>> Rich
>>>
>>
>

Powered by blists - more mailing lists

Your e-mail address:

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