সংকলনের জন্য কার্নেল পিআইসি মোড সমর্থন করে না?


14

আমি উবুন্টু ১..১০ এর সর্বশেষতম লিনাক্স ভি .8.৮.৯ কার্নেলটি সংকলন করার চেষ্টা করছি এবং আমি এই ডিফল্ট। কনফিগ তৈরি করার পরে এই ত্রুটিটি পপ করতে থাকবে, মেনুকনফিগ দিয়ে এটি সংশোধন করে নিজেই চালিয়ে গেল। আমি ফাইলটি অচিহ্নিত করার সাথে সাথে এমআরপ্রোপার তৈরিও চালিয়েছি। এটি তৈরি করার পরে ঠিক এই আউটপুট:

scripts/kconfig/conf  --silentoldconfig Kconfig
  SYSTBL  arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h
  SYSHDR  arch/x86/entry/syscalls/../../include/generated/asm/unistd_32_ia32.h
  SYSHDR  arch/x86/entry/syscalls/../../include/generated/asm/unistd_64_x32.h
  SYSTBL  arch/x86/entry/syscalls/../../include/generated/asm/syscalls_64.h
  SYSHDR  arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h
  SYSHDR  arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h
  SYSHDR  arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h
  HOSTCC  arch/x86/tools/relocs_32.o
  HOSTCC  arch/x86/tools/relocs_64.o
  HOSTCC  arch/x86/tools/relocs_common.o
  HOSTLD  arch/x86/tools/relocs
  CHK     include/config/kernel.release
  UPD     include/config/kernel.release
  WRAP    arch/x86/include/generated/asm/clkdev.h
  WRAP    arch/x86/include/generated/asm/cputime.h
  WRAP    arch/x86/include/generated/asm/dma-contiguous.h
  WRAP    arch/x86/include/generated/asm/early_ioremap.h
  WRAP    arch/x86/include/generated/asm/mcs_spinlock.h
  WRAP    arch/x86/include/generated/asm/mm-arch-hooks.h
  CHK     include/generated/uapi/linux/version.h
  UPD     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
  CC      kernel/bounds.s
kernel/bounds.c:1:0: error: code model kernel does not support PIC mode
 /*

Kbuild:45: recipe for target 'kernel/bounds.s' failed
make[1]: *** [kernel/bounds.s] Error 1
Makefile:1015: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2

আমি মেক কমান্ডের পরে -ন-পাই বিকল্পের সাথে সংকলন করার চেষ্টাও করেছি কিন্তু এটি ক্রমাগত "নিখোঁজ লক্ষ্যগুলি" রয়েছে তা বলে নতুন ত্রুটির একটি সেট সরবরাহ করে। আমার জিসিসি সংস্করণ 6.2.0 আছে। আমি জিসিসি -5 ইনস্টল করেছি কারণ আমি শুরুতে ধরে নিয়েছিলাম কারণ এটি জিসিসি খুব নতুন ছিল তবে একই সমস্যাটি জিসিসি -5 এ টিকে আছে। মেলিং তালিকাগুলিতে বা অন্য কোনও ফোরামে থাকা কেউ উল্লেখ করেছেন যে সরাসরি গিট থেকে ক্লোনিং করে সমস্যার সমাধান করা হয়েছিল তবে এটি আমার দৃশ্যেও সহায়তা করেনি।

আমি আগ্রহী যদি অন্য কেউ এই সমস্যায় পড়ে থাকে এবং যদি তাই হয় তবে এটির সম্ভাব্য সমাধান কী হতে পারে?

দ্রষ্টব্য: আমি কোনও ম্যাকের ভার্চুয়ালবক্সে উবুন্টু চালাচ্ছি যদি এটি সমস্যার সম্ভাব্য উত্স হতে পারে।

উত্তর:


14

সমস্যাটি আপনার জিসিসি ইনস্টলেশনের সাথে রয়েছে, জিসিসি 6+ সংস্করণগুলিতে পিআইই (অবস্থান স্বাধীন নির্বাহযোগ্য) ডিফল্টরূপে সক্ষম করা হয়েছে। তাই সংকলন করার জন্য আপনাকে এটি অক্ষম করতে হবে। এমনকি জিসিসি 5 এরও সমস্যা রয়েছে। এটি জিসিসির জন্য একটি পরিচিত বাগ। বাগ লিংক

এখনও অবধি জিসিসি দিক থেকে কোনও অফিসিয়াল প্যাচ নেই, তাই কার্নেল উত্সের মেকফিলকে প্যাচ করার জন্য কাজটি করা হচ্ছে।

যদি আপনি উত্স ফাইলটি প্যাচিংয়ের সাথে পরিচিত হন তবে প্যাচ ফাইল তৈরি করতে এই লিঙ্ক থেকে কোডগুলি ব্যবহার করুন তবে সংকলনের চেষ্টা করুন। প্যাচ ফাইল

আপনার যদি প্যাচ ইনস্টল করতে সমস্যা হয় তবে আমাকে জানান।


আমি একটি সম্পূর্ণ লিনাক্স নুব, আমি কীভাবে প্রদত্ত ওয়েবসাইটে প্যাচটি ইনস্টল করব? আমি ধরে নিয়েছি যে আমি কিছু অংশ অনুলিপি করে একটি ফাইলে আটকিয়ে কমান্ড চালাচ্ছি?
জন লং

1
দুর্ভাগ্যক্রমে, আমার কাছে আপোটিসগুলি করার মতো পর্যাপ্ত রেপ পয়েন্ট নেই তবে আমি একই প্রশ্নটি জিজ্ঞাসা করেছি যা আপনি কেবল সুপারইজারের উত্তর দিয়েছিলেন এবং আমি জিজ্ঞাসা করতে চেয়েছিলাম আপনি সুপারিশারের প্রশ্নের সাথে এই উত্তরটি সংযুক্ত করে উত্তর হিসাবে চিহ্নিত করেছেন বা আপনি নিজেই এটি সুপারভাইজারে উত্তর দিতে পারে। কেবল creditণ দেওয়ার জন্য যেখানে creditণ দেওয়ার বিষয়টি নিশ্চিত করতে চান!
জন লং

1
হাই নিনেটেইনডো, দয়া করে নিশ্চিত হয়ে নিন যে আপনি এটি সঠিকভাবে অনুলিপি করেছেন এবং কেবল "" থেকে "" 2.8.1 "এ অনুলিপি করেছেন।
জয়

1
@Joy আমি একই ভুল ছিল: প্যাচিং ফাইল Makefile নামক গে # 1 608. 1 1 পিনু FAILED বাইরে এ ব্যর্থ হয়েছে - লাইন মাঝখানে ফাইল Makefile.rej প্যাচ করতে প্রত্যাখ্যান অপ্রত্যাশিতভাবে প্রান্ত সংরক্ষণ
rainman

1
প্যাচটি 2.6.x সংস্করণের জন্য কাজ করে না (আমি 2.6.39 এ চেষ্টা করেছি) আমার প্যাচটিতে এই ফাইলটি প্রত্যাখ্যান করে - পেস্টবিন. com/পিএমডিভি 1 এমটিটি কোনও ধারণা?
সতীশজেএম

8

মেকফিলটি খুলুন, সিএফএলজিএস_এক্সআরএআরআর জন্য দেখুন এবং এটিতে নিম্নলিখিত বিকল্পটি যুক্ত করুন -fno-pie

আমার লাইনটি ছিল:

EXTRA_CFLAGS += $(CFLAGS_EXTRA)

আমি এটির জন্য এটি পরিবর্তন করেছি:

EXTRA_CFLAGS += $(CFLAGS_EXTRA) -fno-pie

কার্নেল 4 নির্মাণের জন্য, উপরোক্ত পতাকা হল: KBUILD_CFLAGS

এবং এটি আবার সংকলন শুরু।


এটি ভালভাবে কাজ করছে
কিং স্টোন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.