আমি জিসিসি সংকলনের চেষ্টা করছি। আমি জিসিসির ওয়েবসাইট (6.৩.০ সংস্করণ) থেকে সর্বশেষতম সংস্করণটি ডাউনলোড করেছি, তবে জিসিসি তৈরি করতে আমার কিছুটা সমস্যা হচ্ছে। আমি কনফিগার স্ক্রিপ্টে নিম্নলিখিত বিকল্পগুলি দিয়ে যাচ্ছি:
configure --prefix=<location I want to install> --disable-multilib --disable-linux-futex
দ্রষ্টব্য: এটি কনফিগার বিকল্প ছাড়াই সূক্ষ্ম সংকলন করে --disable-linux-futex
। আমাকে পাস করতে হবে --disable-linux-futex
কারণ আমি লিখেছি যে একটি প্রোগ্রাম আমি লিখেছি ওপেনএমপি ব্যবহার করে, এবং এটি আমাকে এই বিকল্পের সাথে সংকলিত জিসিসি দরকার আমার ডিগ্রি ডিবেগ করতে ভালগ্র্যান্ড ব্যবহার করার চেষ্টা করছি। আমি টাইপ make
করার পরে বিল্ডটি শুরু হয় এবং খুব দীর্ঘ সময়ের জন্য সফলভাবে চলে, যতক্ষণ না আমি নিম্নলিখিত ত্রুটিগুলি পাই:
make[3]: Entering directory '/home/ahanlon/packages/gcc-6.3.0-build/x86_64-pc-linux-gnu/libgcc'
# If this is the top-level multilib, build all the other
# multilibs.
# Early copyback; see "all" above for the rationale. The
# early copy is necessary so that the gcc -B options find
# the right startup files when linking shared libgcc.
/bin/sh ../../../gcc-6.3.0/libgcc/../mkinstalldirs ../.././gcc
parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"; \
for file in $parts; do \
rm -f ../.././gcc/$file; \
/usr/bin/install -c -m 644 $file ../.././gcc/; \
case $file in \
*.a) \
ranlib ../.././gcc/$file ;; \
esac; \
done
# @multilib_flags@ is still needed because this may use
# /home/ahanlon/packages/gcc-6.3.0-build/./gcc/xgcc -B/home/ahanlon/packages/gcc-6.3.0-build/./gcc/ -B/home/ahanlon/.local/x86_64-pc-linux-gnu/bin/ -B/home/ahanlon/.local/x86_64-pc-linux-gnu/lib/ -isystem /home/ahanlon/.local/x86_64-pc-linux-gnu/include -isystem /home/ahanlon/.local/x86_64-pc-linux-gnu/sys-include and -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -mlong-double-80 -DUSE_ELF_SYMVER -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector directly.
# @multilib_dir@ is not really necessary, but sometimes it has
# more uses than just a directory name.
/bin/sh ../../../gcc-6.3.0/libgcc/../mkinstalldirs .
/home/ahanlon/packages/gcc-6.3.0-build/./gcc/xgcc -B/home/ahanlon/packages/gcc-6.3.0-build/./gcc/ -B/home/ahanlon/.local/x86_64-pc-linux-gnu/bin/ -B/home/ahanlon/.local/x86_64-pc-linux-gnu/lib/ -isystem /home/ahanlon/.local/x86_64-pc-linux-gnu/include -isystem /home/ahanlon/.local/x86_64-pc-linux-gnu/sys-include -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -mlong-double-80 -DUSE_ELF_SYMVER -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o sfp-exceptions_s.o addtf3_s.o divtf3_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o getf2_s.o letf2_s.o eqtf2_s.o _divtc3_s.o _multc3_s.o _powitf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && (echo "/* GNU ld script"; echo " Use the shared library, but some functions are only in"; echo " the static library. */"; echo "GROUP ( libgcc_s.so.1 -lgcc )" ) > ./libgcc_s.so
dest=../.././gcc/include/tmp$$-unwind.h; \
cp unwind.h $dest; \
chmod a+r $dest; \
sh ../../../gcc-6.3.0/libgcc/../move-if-change $dest ../.././gcc/include/unwind.h
# Now that we have built all the objects, we need to copy
# them back to the GCC directory. Too many things (other
# in-tree libraries, and DejaGNU) know about the layout
# of the build tree, for now.
make install-leaf DESTDIR=../.././gcc \
slibdir= libsubdir= MULTIOSDIR=.
make[4]: Entering directory '/home/ahanlon/packages/gcc-6.3.0-build/x86_64-pc-linux-gnu/libgcc'
/bin/sh ../../../gcc-6.3.0/libgcc/../mkinstalldirs ../.././gcc
/usr/bin/install -c -m 644 libgcc_eh.a ../.././gcc/
chmod 644 ../.././gcc/libgcc_eh.a
ranlib ../.././gcc/libgcc_eh.a
ranlib: /usr/lib/libLLVM-3.9.so: symbol _ZNSt28__atomic_futex_unsigned_base19_M_futex_notify_allEPj, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
make[4]: *** [Makefile:1115: install-shared] Segmentation fault (core dumped)
make[4]: Leaving directory '/home/ahanlon/packages/gcc-6.3.0-build/x86_64-pc-linux-gnu/libgcc'
make[3]: *** [Makefile:113: all] Error 2
make[3]: Leaving directory '/home/ahanlon/packages/gcc-6.3.0-build/x86_64-pc-linux-gnu/libgcc'
make[2]: *** [Makefile:17378: all-stage1-target-libgcc] Error 2
make[2]: Leaving directory '/home/ahanlon/packages/gcc-6.3.0-build'
make[1]: *** [Makefile:23677: stage1-bubble] Error 2
make[1]: Leaving directory '/home/ahanlon/packages/gcc-6.3.0-build'
make: *** [Makefile:914: all] Error 2
দেখে মনে হচ্ছে সমস্যাটি রনলিবের সাথে রয়েছে ../.././gcc/libgcc_eh.a
, তবে এটি সম্পর্কে কী করব, বা রণলিব কী করছিল বলে আমার ধারণা নেই। কোন সাহায্যের ব্যাপকভাবে প্রশংসা হবে। আমি যদি আমার সেটআপ সম্পর্কে আরও কোনও সহায়ক বিশদ দিতে পারি তবে আমাকে জানান।
strings libstdc++.so.6
আউটপুট অন্তর্ভুক্ত অন্তর্ভুক্তGLIBCXX_3.4.21
। সুতরাং, আমার সমস্ত সঠিক সংস্করণ নেই? আমি জিসিসির একটি পুরানো সংস্করণ সংকলন করার চেষ্টা করেছি এবং আমারও একই সমস্যা রয়েছে। এছাড়াও, যেহেতু আমি সফলভাবে--disable-linux-futex
বিকল্পটি ছাড়াই জিসিসি সংকলন করেছি , তাতে কি আমার সমস্ত সংস্করণটি ঠিক আছে? এই বিকল্পটি সম্পর্কে কী আলাদা হতে পারে?