ckolivas / lrzip

Long Range Zip
http://lrzip.kolivas.org
GNU General Public License v2.0
619 stars 76 forks source link

Compiling lrzip-0.621 on Solaris 11.3 x86 #50

Closed Kajanos closed 8 years ago

Kajanos commented 8 years ago

I have a problem with compiling lrzip on Solaris 11.

CXXLD lrzip Undefined first referenced symbol in file fake_mremap ./.libs/libtmplrzip.a(rzip.o) ld: fatal: symbol referencing errors collect2: error: ld returned 1 exit status * Error code 1 The following command caused the error: echo " CXXLD " lrzip;/bin/sh ./libtool --silent --tag=CXX --mode=link g++ -I. -I lzma/C -DNDEBUG -g -O2 -o lrzip main.o libtmplrzip.la -llzo2 -lbz2 -lz -lm -lpthread make: Fatal error: Command failed for target `lrzip' Current working directory /root/lrzip-0.621 * Error code 1 The following command caused the error: fail=; \ if (target_option=k; case ${target_option-} in ?) ;; ) echo "am__make_running_with_option: internal error: invalid" "target option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no; sane_makeflags=$MAKEFLAGS; if test -n '' && test -n '1'; then sane_makeflags=$MFLAGS; else case $MAKEFLAGS in \[\ \ ]) bs=\; sanemakeflags=`printf '%s\n' "$MAKEFLAGS" | sed "s/$bs$bs[$bs $bs ]//g";; esac; fi; skip_next=no; strip_trailopt () { flg=printf '%s\n' "$flg" | sed "s/$1._$//"`; }; for flg in $sane_makeflags; do test $skip_next = yes && { skip_next=no; continue; }; case $flg in =|--) continue;; -I) strip_trailopt 'I'; skip_next=yes;; -I?) strip_trailopt 'I';; -O) strip_trailopt 'O'; skip_next=yes;; -O?) strip_trailopt 'O';; -l) strip_trailopt 'l'; skip_next=yes;; -l?) strip_trailopt 'l';; -[dEDm]) skip_next=yes;; -[JT]) skip_next=yes;; esac; case $flg in $target_option) has_opt=yes; break;; esac; done; test $has_opt = yes); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=echo all-recursive | sed s/-recursive//; \ case "all-recursive" in \ distclean- | maintainer-clean-) list='lzma man doc' ;; \ ) list='lzma man doc' ;; \ esac; \ for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make $local_target) \ || eval $failcom; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for targetall-recursive' Current working directory /root/lrzip-0.621 **\* Error code 1 make: Fatal error: Command failed for targetall'

Kajanos commented 8 years ago

Does anyone have any idea ?

ckolivas commented 8 years ago

I'm the maintainer and virtually the only lrzip developer and know nothing about Solaris and haven't tried to support it, sorry.

joelfredrikson commented 8 years ago

The #ifdef in rzip.c should match the #ifdef in lrzip_private.h,

--- rzip.c.orig 2015-03-10 10:13:22.000000000 +0000 +++ rzip.c @@ -772,7 +772,7 @@ static inline void init_hash_indexes(str st->hash_index[i] = ((random() << 16) ^ random()); }

-#if defined(APPLE) || defined(FreeBSD) +#if !defined(__linux)

define mremap fake_mremap

static inline void fake_mremap(void old_address, size_t old_size, size_t new_size, int flags UNUSED)