كيفية إنشاء نفس مصادر Linux Kernel مرتين والحصول على نفس المجموع الاختباري

StackOverflow https://stackoverflow.com/questions/1057087

سؤال

أنا أبحث عما إذا كان من الممكن إنشاء نفس Linux Kerneltwice (نفس المصادر، نفس البيئة، نفس الخيارات، نفس المترجم) والحصول على نفس المجموع الاختباري.هل يعرف أحد كيف يفعل ذلك؟

هل كانت مفيدة؟

المحلول

ويتم تضمين تاريخ البناء في النسخة، انظر الحرف الأول version.c:

const char linux_banner[] =
    "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
    LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";

ويعرف UTS_VERSION في ما يلي / لينكس / compile.h:

/* This file is auto generated, version 1 */
/*  PREEMPT */
#define UTS_MACHINE "arm"
#define UTS_VERSION "#1 PREEMPT Mon Jun 29 10:49:17 CEST 2009"
#define LINUX_COMPILE_TIME "10:49:17"
#define LINUX_COMPILE_BY "cynove"
#define LINUX_COMPILE_HOST "jp"
#define LINUX_COMPILE_DOMAIN "evonyc"
#define LINUX_COMPILER "gcc version 4.3.2 (crosstool-NG-1.4.0) "

ويتم إنشاؤها من قبل compile.h مخطوطات / mkcompile_h، حيث يمكنك العثور على السطر التالي:

UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS `LC_ALL=C LANG=C date`"

وعن طريق إزالة date من الخط السابق له، يجب أن تكون قادرة على التخلص من التبعية بناء الزمن.

نصائح أخرى

والجواب shodanex هو حق ولكن غير مكتملة. بعد بعض البحث وجدت نواة لينكس ثنائي يضمن لramfs الافتراضي وهو سبب آخر من الخلافات بين اثنين من حبات مصنفات (رأس CPIO RAMFS تاريخ يضمن). انه من المستحيل لتعطيل هذه الميزة ولكن من الممكن لتوفير ramfs الافتراضية. عند القيام بذلك، يمكنك الحصول على بالضبط نفس الاختباري.

وشكرا لكم. إجاباتك تساعدني كثيرا في حل مشكلتي.

وgsempe، كنت ترغب في البحث عن هذا: "جعل نواة بناء حتمية" المرجع. http://lwn.net/Articles/437864/

وكان من الممكن للتخلص من بعض مصادر الضوضاء (ضجيج ... في عين الناظر. -)

وحتى مرحبا العالم بسيط جمعت مرتين النتائج في ثنائيات مختلفة. بطريقة أو بأخرى رابط يضيف بعض المعلومات التي تتغير في كل بناء.

وأسرع طريقة للتحقق سيكون لجعل، أخذ نسخة، وجعل نظيفة، ثم جعل من جديد. إذا كان اختباري مباريات، ثم من الممكن. إذا لم يكن ثم يمكن أن يوحي جعل يعمل على تغيير بعض الملفات المصدر في بعض الطريق (بناء الترقيم، وتاريخ الخ بناء)

من المفترض أن بناء النواة في نفس البيئة سيؤدي إلى نفس المجموع الاختباري.لذا، نفس المترجم (نفس الإصدار من نفس المترجم)، بالضبط نفس المصدر، ونفس التبعيات (إذا كان ذلك قابلاً للتطبيق على ترجمة النواة)، وما إلى ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top