.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "OBJCOPY 1" .TH OBJCOPY 1 2026-01-23 binutils-2.45.1 "GNU Development Tools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" objcopy \- رونوشت و تبدیل فایل‌های شیء .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR] [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR] [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR] [\fB\-B\fR \fIbfdarch\fR|\fB\-\-binary\-architecture=\fR\fIbfdarch\fR] [\fB\-S\fR|\fB\-\-strip\-all\fR] [\fB\-g\fR|\fB\-\-strip\-debug\fR] [\fB\-\-strip\-unneeded\fR] [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR] [\fB\-\-keep\-file\-symbols\fR] [\fB\-\-keep\-section\-symbols\fR] [\fB\-N\fR \fIsymbolname\fR|\fB\-\-strip\-symbol=\fR\fIsymbolname\fR] [\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR] [\fB\-G\fR \fIsymbolname\fR|\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR] [\fB\-\-localize\-hidden\fR] [\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR] [\fB\-\-globalize\-symbol=\fR\fIsymbolname\fR] [\fB\-\-globalize\-symbols=\fR\fIfilename\fR] [\fB\-W\fR \fIsymbolname\fR|\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR] [\fB\-w\fR|\fB\-\-wildcard\fR] [\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR|\fB\-\-discard\-locals\fR] [\fB\-b\fR \fIbyte\fR|\fB\-\-byte=\fR\fIbyte\fR] [\fB\-i\fR [\fIbreadth\fR]|\fB\-\-interleave\fR[=\fIbreadth\fR]] [\fB\-\-interleave\-width=\fR\fIwidth\fR] [\fB\-j\fR \fIsectionpattern\fR|\fB\-\-only\-section=\fR\fIsectionpattern\fR] [\fB\-R\fR \fIsectionpattern\fR|\fB\-\-remove\-section=\fR\fIsectionpattern\fR] [\fB\-\-keep\-section=\fR\fIsectionpattern\fR] [\fB\-\-remove\-relocations=\fR\fIsectionpattern\fR] [\fB\-\-strip\-section\-headers\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR] [\fB\-D\fR|\fB\-\-enable\-deterministic\-archives\fR] [\fB\-U\fR|\fB\-\-disable\-deterministic\-archives\fR] [\fB\-\-debugging\fR] [\fB\-\-gap\-fill=\fR\fIval\fR] [\fB\-\-pad\-to=\fR\fIaddress\fR] [\fB\-\-set\-start=\fR\fIval\fR] [\fB\-\-adjust\-start=\fR\fIincr\fR] [\fB\-\-change\-addresses=\fR\fIincr\fR] [\fB\-\-change\-section\-address\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR] [\fB\-\-change\-section\-lma\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR] [\fB\-\-change\-section\-vma\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR] [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR] [\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR=\fIflags\fR] [\fB\-\-set\-section\-alignment\fR \fIsectionpattern\fR=\fIalign\fR] [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR] [\fB\-\-dump\-section\fR \fIsectionname\fR=\fIfilename\fR] [\fB\-\-update\-section\fR \fIsectionname\fR=\fIfilename\fR] [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]] [\fB\-\-long\-section\-names\fR {enable,disable,keep}] [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR] [\fB\-\-reverse\-bytes=\fR\fInum\fR] [\fB\-\-srec\-len=\fR\fIival\fR] [\fB\-\-srec\-forceS3\fR] [\fB\-\-redefine\-sym\fR \fIold\fR=\fInew\fR] [\fB\-\-redefine\-syms=\fR\fIfilename\fR] [\fB\-\-weaken\fR] [\fB\-\-keep\-symbols=\fR\fIfilename\fR] [\fB\-\-strip\-symbols=\fR\fIfilename\fR] [\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR] [\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR] [\fB\-\-localize\-symbols=\fR\fIfilename\fR] [\fB\-\-weaken\-symbols=\fR\fIfilename\fR] [\fB\-\-add\-symbol\fR \fIname\fR=[\fIsection\fR:]\fIvalue\fR[,\fIflags\fR]] [\fB\-\-alt\-machine\-code=\fR\fIindex\fR] [\fB\-\-prefix\-symbols=\fR\fIstring\fR] [\fB\-\-prefix\-sections=\fR\fIstring\fR] [\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR] [\fB\-\-add\-gnu\-debuglink=\fR\fIpath\-to\-file\fR] [\fB\-\-only\-keep\-debug\fR] [\fB\-\-strip\-dwo\fR] [\fB\-\-extract\-dwo\fR] [\fB\-\-extract\-symbol\fR] [\fB\-\-writable\-text\fR] [\fB\-\-readonly\-text\fR] [\fB\-\-pure\fR] [\fB\-\-impure\fR] [\fB\-\-file\-alignment=\fR\fInum\fR] [\fB\-\-heap=\fR\fIreserve\fR[,\fIcommit\fR]] [\fB\-\-image\-base=\fR\fIaddress\fR] [\fB\-\-section\-alignment=\fR\fInum\fR] [\fB\-\-stack=\fR\fIreserve\fR[,\fIcommit\fR]] [\fB\-\-subsystem=\fR\fIwhich\fR:\fImajor\fR.\fIminor\fR] [\fB\-\-compress\-debug\-sections\fR] [\fB\-\-decompress\-debug\-sections\fR] [\fB\-\-elf\-stt\-common=\fR\fIval\fR] [\fB\-\-merge\-notes\fR] [\fB\-\-no\-merge\-notes\fR] [\fB\-\-verilog\-data\-width=\fR\fIval\fR] [\fB\-v\fR|\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fB\-\-help\fR] [\fB\-\-info\fR] \fIinfile\fR [\fIoutfile\fR].SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" ابزار \fBobjcopy\fR گنو، محتوای یک فایل شیء (object file) را به فایل دیگری رونوشت می‌کند. \fBobjcopy\fR از کتابخانهٔ BFD گنو برای خواندن و نوشتن فایل‌های شیء استفاده می‌کند. این ابزار می‌تواند فایل شیء مقصد را در قالبی متفاوت از فایل شیء مبدأ بنویسد. رفتار دقیق \fBobjcopy\fR توسط گزینه‌های خط فرمان کنترل می‌شود. توجه داشته باشید که \fBobjcopy\fR باید بتواند یک فایل کاملاً پیوندیافته (fully linked) را میان هر دو قالبی رونوشت کند. با این حال، رونوشت یک فایل شیء بازتعیین‌پذیر (relocatable) میان هر دو قالبی ممکن است مطابق انتظار عمل نکند. .PP \&\fBobjcopy\fR برای انجام تبدیل‌های خود فایل‌های موقتی ایجاد کرده و پس از اتمام کار آن‌ها را حذف می‌کند. \fBobjcopy\fR برای تمامی کارهای تبدیل خود از BFD استفاده می‌کند؛ این ابزار به تمامی قالب‌های شرح‌داده‌شده در BFD دسترسی داشته و از این رو قادر است بیشتر قالب‌ها را بدون نیاز به تصریح صریح، تشخیص دهد. .PP از \fBobjcopy\fR می‌توان با تعیین هدف خروجی \fBsrec\fR (برای مثال با استفاده از \fB\-O srec\fR) جهت تولید S\-record استفاده کرد. .PP از \fBobjcopy\fR می‌توان با تعیین هدف خروجی \fBbinary\fR (برای مثال با استفاده از \fB\-O binary\fR) برای تولید یک فایل باینری خام (raw binary) استفاده کرد. هنگامی که \fBobjcopy\fR یک فایل باینری خام تولید می‌کند، اساساً یک نسخهٔ تخلیهٔ حافظه (memory dump) از محتوای فایل شیء ورودی ایجاد خواهد کرد. تمامی نمادها و اطلاعات بازتعیین (relocation) دور ریخته خواهند شد. تخلیهٔ حافظه از نشانی بارگذاری پایین‌ترین بخشی که در فایل خروجی رونوشت شده است آغاز خواهد شد. .PP هنگام تولید یک S\-record یا یک فایل باینری خام، استفاده از \fB\-S\fR برای حذف بخش‌های حاوی اطلاعات اشکال‌زدایی مفید خواهد بود. در برخی موارد نیز \fB\-R\fR برای حذف بخش‌هایی که حاوی اطلاعات غیرضروری برای فایل باینری هستند کاربرد دارد. .PP نکته \-\-\- \fBobjcopy\fR قادر به تغییر ترتیب بایت‌ها (endianness) در فایل‌های ورودی خود نیست. اگر قالب ورودی دارای ترتیب بایت باشد (برخی قالب‌ها فاقد آن هستند)، \fBobjcopy\fR تنها می‌تواند ورودی‌ها را به قالب‌هایی رونوشت کند که ترتیب بایت یکسانی داشته باشند یا فاقد ترتیب بایت باشند (مانند \fBsrec\fR). (با این حال، گزینهٔ \fB\-\-reverse\-bytes\fR را ببینید.) .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fIinfile\fR 4 .IX Item "infile" .PD 0 .IP \fIoutfile\fR 4 .IX Item "outfile" .PD به ترتیب فایل‌های ورودی و خروجی. اگر \fIoutfile\fR را مشخص نکنید، \fBobjcopy\fR یک فایل موقت ایجاد کرده و به صورت مخرب، فایل نتیجه را با نام \fIinfile\fR جایگزین می‌کند. .IP "\fB\-I\fR \fIbfdname\fR" 4 .IX Item "-I bfdname" .PD 0 .IP \fB\-\-input\-target=\fR\fIbfdname\fR 4 .IX Item "--input-target=bfdname" .PD قالب شیء فایل مبدأ را به جای تلاش برای استنتاج خودکار آن، \fIbfdname\fR در نظر می‌گیرد. .IP "\fB\-O\fR \fIbfdname\fR" 4 .IX Item "-O bfdname" .PD 0 .IP \fB\-\-output\-target=\fR\fIbfdname\fR 4 .IX Item "--output-target=bfdname" .PD فایل خروجی را با استفاده از قالب شیء \fIbfdname\fR می‌نویسد. .IP "\fB\-F\fR \fIbfdname\fR" 4 .IX Item "-F bfdname" .PD 0 .IP \fB\-\-target=\fR\fIbfdname\fR 4 .IX Item "--target=bfdname" .PD از \fIbfdname\fR به عنوان قالب شیء برای هر دو فایل ورودی و خروجی استفاده می‌کند؛ یعنی داده‌ها را صرفاً بدون هیچ تبدیلی از مبدأ به مقصد منتقل می‌نماید. .IP "\fB\-B\fR \fIbfdarch\fR" 4 .IX Item "-B bfdarch" .PD 0 .IP \fB\-\-binary\-architecture=\fR\fIbfdarch\fR 4 .IX Item "--binary-architecture=bfdarch" .PD هنگام تبدیل یک فایل ورودی فاقد معماری به یک فایل شیء، کاربرد دارد. در این حالت معماری خروجی می‌تواند روی \fIbfdarch\fR تنظیم شود. اگر فایل ورودی دارای یک \fIbfdarch\fR شناخته‌شده باشد، این گزینه نادیده گرفته خواهد شد. شما می‌توانید با ارجاع به نمادهای ویژه‌ای که در طول فرایند تبدیل ایجاد می‌شوند، از درون یک برنامه به این داده‌های باینری دسترسی پیدا کنید. این نمادها _binary_\fIobjfile\fR_start و _binary_\fIobjfile\fR_end و _binary_\fIobjfile\fR_size نامیده می‌شوند. برای نمونه، می‌توانید یک فایل تصویر را به یک فایل شیء تبدیل کرده و سپس در کد خود با استفاده از این نمادها به آن دسترسی داشته باشید. .IP "\fB\-j\fR \fIsectionpattern\fR" 4 .IX Item "-j sectionpattern" .PD 0 .IP \fB\-\-only\-section=\fR\fIsectionpattern\fR 4 .IX Item "--only-section=sectionpattern" .PD تنها بخش‌های مشخص‌شده را از فایل ورودی به فایل خروجی رونوشت می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید که استفادهٔ نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند. نویسه‌های عامه‌نما (wildcard) در \fIsectionpattern\fR پذیرفته می‌شوند. .Sp اگر نخستین نویسهٔ \fIsectionpattern\fR علامت تعجب (!) باشد، بخش‌های منطبق رونوشت نخواهند شد، حتی اگر استفادهٔ قبلی از \fB\-\-only\-section\fR در همان خط فرمان در غیر این صورت آن را رونوشت می‌کرد. برای نمونه: .Sp .Vb 1 \& \-\-only\-section=.text.* \-\-only\-section=!.text.foo .Ve .Sp تمام بخش‌های منطبق با \*(Aq.text.*\*(Aq را رونوشت خواهد کرد اما بخش \&\*(Aq.text.foo\*(Aq را رونوشت نمی‌کند. .IP "\fB\-R\fR \fIsectionpattern\fR" 4 .IX Item "-R sectionpattern" .PD 0 .IP \fB\-\-remove\-section=\fR\fIsectionpattern\fR 4 .IX Item "--remove-section=sectionpattern" .PD هر بخشی را که با \fIsectionpattern\fR مطابقت داشته باشد از فایل خروجی حذف می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید که استفادهٔ نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند. نویسه‌های عامه‌نما در \fIsectionpattern\fR پذیرفته می‌شوند. استفادهٔ هم‌زمان از هر دو گزینهٔ \fB\-j\fR و \fB\-R\fR رفتاری تعریف‌نشده خواهد داشت. .Sp اگر نخستین نویسهٔ \fIsectionpattern\fR علامت تعجب (!) باشد، بخش‌های منطبق حذف نخواهند شد، حتی اگر استفادهٔ قبلی از \fB\-\-remove\-section\fR در همان خط فرمان در غیر این صورت آن را حذف می‌کرد. برای نمونه: .Sp .Vb 1 \& \-\-remove\-section=.text.* \-\-remove\-section=!.text.foo .Ve .Sp تمام بخش‌های منطبق با الگوی \*(Aq.text.*\*(Aq را حذف خواهد کرد، اما بخش \*(Aq.text.foo\*(Aq را حذف نمی‌کند. .IP \fB\-\-keep\-section=\fR\fIsectionpattern\fR 4 .IX Item "--keep-section=sectionpattern" هنگام حذف بخش‌ها از فایل خروجی، بخش‌هایی را که با \fIsectionpattern\fR تطابق دارند نگه می‌دارد. .IP \fB\-\-remove\-relocations=\fR\fIsectionpattern\fR 4 .IX Item "--remove-relocations=sectionpattern" بازتعیین‌های غیرپویا (non\-dynamic relocations) را برای هر بخشی که با \&\fIsectionpattern\fR مطابقت دارد از فایل خروجی حذف می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید که استفادهٔ نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند؛ همچنین تلاش برای حذف یک بخش بازتعیین پویا مانند \fB.rela.plt\fR از یک فایل اجرایی یا کتابخانهٔ اشتراکی با استفاده از \fB\-\-remove\-relocations=.plt\fR کارساز نخواهد بود. نویسه‌های عامه‌نما در \fIsectionpattern\fR پذیرفته می‌شوند. برای نمونه: .Sp .Vb 1 \& \-\-remove\-relocations=.text.* .Ve .Sp بازتعیین‌های مربوط به تمامی بخش‌های منطبق با الگوی \*(Aq.text.*\*(Aq را حذف خواهد کرد. .Sp اگر نخستین نویسهٔ \fIsectionpattern\fR علامت تعجب (!) باشد، بازتعیین‌های بخش‌های منطبق حذف نخواهند شد، حتی اگر استفادهٔ قبلی از \&\fB\-\-remove\-relocations\fR در همان خط فرمان موجب حذف آن‌ها می‌شد. برای نمونه: .Sp .Vb 1 \& \-\-remove\-relocations=.text.* \-\-remove\-relocations=!.text.foo .Ve .Sp تمام بازتعیین‌ها را برای بخش‌های منطبق با الگوی \*(Aq.text.*\*(Aq حذف می‌کند، اما بازتعیین‌های بخش \*(Aq.text.foo\*(Aq را حذف نخواهد کرد. .IP \fB\-\-strip\-section\-headers\fR 4 .IX Item "--strip-section-headers" سرایندهای بخش را حذف می‌کند. این گزینه مخصوص فایل‌های ELF است. این گزینه مستلزم \fB\-\-strip\-all\fR و \fB\-\-merge\-notes\fR است. .IP \fB\-S\fR 4 .IX Item "-S" .PD 0 .IP \fB\-\-strip\-all\fR 4 .IX Item "--strip-all" .PD اطلاعات بازتعیین و نمادها را از فایل مبدأ رونوشت نمی‌کند. همچنین بخش‌های اشکال‌زدایی (debug) را حذف می‌کند..IP \fB\-g\fR 4 .IX Item "-g" .PD 0 .IP \fB\-\-strip\-debug\fR 4 .IX Item "--strip-debug" .PD نمادها یا بخش‌های اشکال‌زدایی را از فایل مبدأ کپی نمی‌کند. .IP \fB\-\-strip\-unneeded\fR 4 .IX Item "--strip-unneeded" علاوه بر نمادها و بخش‌های اشکال‌زدایی حذف‌شده با \&\fB\-\-strip\-debug\fR، تمام نمادهایی را که برای پردازش بازنشانی (relocation) مورد نیاز نیستند حذف می‌کند. .IP "\fB\-K\fR \fIsymbolname\fR" 4 .IX Item "-K symbolname" .PD 0 .IP \fB\-\-keep\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--keep-symbol=symbolname" .PD هنگام پیراستن نمادها، نماد \fIsymbolname\fR را حتی در صورتی که در حالت عادی حذف می‌شد، نگه می‌دارد. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP "\fB\-N\fR \fIsymbolname\fR" 4 .IX Item "-N symbolname" .PD 0 .IP \fB\-\-strip\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--strip-symbol=symbolname" .PD نماد \fIsymbolname\fR را از فایل مبدأ کپی نمی‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--strip-unneeded-symbol=symbolname" نماد \fIsymbolname\fR را از فایل مبدأ کپی نمی‌کند مگر اینکه برای یک بازنشانی نیاز باشد. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP "\fB\-G\fR \fIsymbolname\fR" 4 .IX Item "-G symbolname" .PD 0 .IP \fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--keep-global-symbol=symbolname" .PD فقط نماد \fIsymbolname\fR را سراسری (global) نگه می‌دارد. تمام نمادهای دیگر را برای فایل محلی (local) می‌کند، به طوری که از خارج قابل مشاهده نباشند. این گزینه می‌تواند بیش از یک بار مشخص شود. نکته: این گزینه نمی‌تواند همراه با گزینه‌های \fB\-\-globalize\-symbol\fR یا \&\fB\-\-globalize\-symbols\fR استفاده شود. .IP \fB\-\-localize\-hidden\fR 4 .IX Item "--localize-hidden" در یک شیء ELF، تمام نمادهایی را که دارای دید پنهان (hidden) یا داخلی (internal) هستند به عنوان محلی علامت‌گذاری می‌کند. این گزینه علاوه بر گزینه‌های محلی‌سازی مختص نمادها مانند \fB\-L\fR اعمال می‌شود. .IP "\fB\-L\fR \fIsymbolname\fR" 4 .IX Item "-L symbolname" .PD 0 .IP \fB\-\-localize\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--localize-symbol=symbolname" .PD یک نماد سراسری یا ضعیف (weak) با نام \fIsymbolname\fR را به یک نماد محلی تبدیل می‌کند، به طوری که از خارج قابل مشاهده نباشد. این گزینه می‌تواند بیش از یک بار مشخص شود. نکته \- نمادهای یکتا (unique) تبدیل نمی‌شوند. .IP "\fB\-W\fR \fIsymbolname\fR" 4 .IX Item "-W symbolname" .PD 0 .IP \fB\-\-weaken\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--weaken-symbol=symbolname" .PD نماد \fIsymbolname\fR را ضعیف (weak) می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-globalize\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--globalize-symbol=symbolname" به نماد \fIsymbolname\fR حوزهٔ سراسری می‌دهد تا در خارج از فایلی که در آن تعریف شده قابل مشاهده باشد. این گزینه می‌تواند بیش از یک بار مشخص شود. نکته: این گزینه نمی‌تواند همراه با گزینه‌های \fB\-G\fR یا \fB\-\-keep\-global\-symbol\fR استفاده شود. .IP \fB\-w\fR 4 .IX Item "-w" .PD 0 .IP \fB\-\-wildcard\fR 4 .IX Item "--wildcard" .PD اجازه استفاده از عبارت‌های منظم در \fIsymbolname\fRهای استفاده‌شده در سایر گزینه‌های خط فرمان را می‌دهد. عملگرهای علامت سؤال (?)، ستاره (*)، ممیز وارونه (\e) و قلاب‌ها ([]) می‌توانند در هر کجای نام نماد به کار روند. اگر نویسهٔ نخستِ نام نماد علامت تعجب (!) باشد، مفهوم گزینه برای آن نماد معکوس می‌شود. برای مثال: .Sp .Vb 1 \& \-w \-W !foo \-W fo* .Ve .Sp باعث می‌شود objcopy تمام نمادهایی را که با "fo" شروع می‌شوند به استثنای نماد "foo" تضعیف کند. .IP \fB\-x\fR 4 .IX Item "-x" .PD 0 .IP \fB\-\-discard\-all\fR 4 .IX Item "--discard-all" .PD نمادهای غیرسراسری را از فایل مبدأ کپی نمی‌کند. .IP \fB\-X\fR 4 .IX Item "-X" .PD 0 .IP \fB\-\-discard\-locals\fR 4 .IX Item "--discard-locals" .PD نمادهای محلی تولیدشده توسط کامپایلر را کپی نمی‌کند. (این نمادها معمولاً با \fBL\fR یا \fB.\fR آغاز می‌شوند.) .IP "\fB\-b\fR \fIbyte\fR" 4 .IX Item "-b byte" .PD 0 .IP \fB\-\-byte=\fR\fIbyte\fR 4 .IX Item "--byte=byte" .PD اگر درهم‌بافی از طریق گزینهٔ \fB\-\-interleave\fR فعال شده باشد، محدودهٔ بایت‌هایی را که باید نگه داشته شوند از \fIbyte\fRاُمین بایت آغاز می‌کند. مقدار \&\fIbyte\fR می‌تواند در محدودهٔ 0 تا \fIbreadth\fR\-1 باشد، که در آن \&\fIbreadth\fR مقداری است که توسط گزینهٔ \fB\-\-interleave\fR تعیین شده است. .IP "\fB\-i [\fR\fIbreadth\fR\fB]\fR" 4 .IX Item "-i [breadth]" .PD 0 .IP \fB\-\-interleave[=\fR\fIbreadth\fR\fB]\fR 4 .IX Item "--interleave[=breadth]" .PD تنها یک محدوده را از هر \fIbreadth\fR بایت کپی می‌کند. (داده‌های سربرگ تحت تأثیر قرار نمی‌گیرند). مشخص کنید کپی در این محدوده با کدام بایت با استفاده از گزینهٔ \fB\-\-byte\fR آغاز شود. پهنای محدوده را با گزینهٔ \&\fB\-\-interleave\-width\fR انتخاب کنید. .Sp این گزینه برای ساخت فایل‌های برنامه‌ریزی ROM مفید است. معمولاً با یک هدف خروجی \f(CW\*(C`srec\*(C'\fR به کار می‌رود. توجه داشته باشید که اگر گزینهٔ \&\fB\-\-byte\fR را نیز تعیین نکنید، \&\fBobjcopy\fR خطا خواهد گرفت. .Sp پهنای پیش‌فرض درهم‌بافی 4 است؛ بنابراین با تنظیم \fB\-\-byte\fR روی 0، \&\fBobjcopy\fR نخستین بایت از هر چهار بایت را از ورودی به خروجی کپی می‌کند. .IP \fB\-\-interleave\-width=\fR\fIwidth\fR 4 .IX Item "--interleave-width=width" در صورت استفاده همراه با گزینهٔ \fB\-\-interleave\fR، هر بار \fIwidth\fR بایت را کپی می‌کند. آغاز محدودهٔ بایت‌های کپی‌شونده با گزینهٔ \fB\-\-byte\fR و وسعت محدوده با گزینهٔ \fB\-\-interleave\fR تعیین می‌شود. .Sp مقدار پیش‌فرض این گزینه 1 است. مجموع مقدار \fIwidth\fR و مقدار \fIbyte\fR تعیین‌شده توسط گزینهٔ \fB\-\-byte\fR نباید از پهنای درهم‌بافی تعیین‌شده توسط گزینهٔ \fB\-\-interleave\fR تجاوز کند. .Sp این گزینه می‌تواند برای ساخت ایمیج‌ها برای دو حافظه فلش 16 بیتی درهم‌بافته‌شده در یک گذرگاه 32 بیتی با فرستادن \fB\-b 0 \-i 4 \-\-interleave\-width=2\fR و \fB\-b 2 \-i 4 \-\-interleave\-width=2\fR به دو دستور \fBobjcopy\fR به کار رود. اگر ورودی \*(Aq12345678\*(Aq باشد، خروجی‌ها به ترتیب \&\*(Aq1256\*(Aq و \*(Aq3478\*(Aq خواهند بود. .IP \fB\-p\fR 4 .IX Item "-p" .PD 0 .IP \fB\-\-preserve\-dates\fR 4 .IX Item "--preserve-dates" .PD تاریخ‌های دسترسی و تغییر فایل خروجی را با تاریخ‌های فایل ورودی یکسان قرار می‌دهد. .Sp این گزینه همچنین تاریخی را که در سربرگ یک فایل با قالب PE ذخیره شده کپی می‌کند، مگر اینکه متغیر محیطی SOURCE_DATE_EPOCH تعریف شده باشد. در صورت تعریف شدن، این متغیر به عنوان تاریخ ذخیره‌شده در سربرگ استفاده شده و به عنوان تعداد ثانیه‌ها از مبدأ یونیکس (Unix epoch) تفسیر می‌شود. .IP \fB\-D\fR 4 .IX Item "-D" .PD 0 .IP \fB\-\-enable\-deterministic\-archives\fR 4 .IX Item "--enable-deterministic-archives" .PD در حالت \fIمعین\fR (deterministic) عمل می‌کند. هنگام کپی کردن اعضای بایگانی و نوشتن نمایهٔ بایگانی، از صفر برای UIDها، GIDها، برچسب‌های زمانی، و از حالت‌های یکدست فایل برای تمام فایل‌ها استفاده می‌کند. .Sp اگر \fIbinutils\fR با \&\fB\-\-enable\-deterministic\-archives\fR پیکربندی شده باشد، این حالت به صورت پیش‌فرض فعال است. می‌توان آن را با گزینهٔ \fB\-U\fR در زیر غیرفعال کرد. .IP \fB\-U\fR 4 .IX Item "-U" .PD 0 .IP \fB\-\-disable\-deterministic\-archives\fR 4 .IX Item "--disable-deterministic-archives".PD در حالت معین (\fIdeterministic\fR) کار \fIنکنید\fR. این معکوس گزینهٔ \fB\-D\fR در بالا است: هنگام رونوشت‌برداری از اعضای آرشیو و نوشتن نمایهٔ آرشیو، از مقادیر واقعی UID، GID، برچسب زمان (timestamp) و حالت فایل (file mode) آن‌ها استفاده کنید. .Sp این حالت پیش‌فرض است مگر اینکه \fIbinutils\fR با \&\fB\-\-enable\-deterministic\-archives\fR پیکربندی شده باشد. .IP \fB\-\-debugging\fR 4 .IX Item "--debugging" در صورت امکان، اطلاعات اشکال‌زدایی (debugging) را تبدیل کن. این گزینه پیش‌فرض نیست زیرا تنها قالب‌های اشکال‌زدایی خاصی پشتیبانی می‌شوند، و فرایند تبدیل می‌تواند زمان‌بر باشد. .IP "\fB\-\-gap\-fill\fR \fIval\fR" 4 .IX Item "--gap-fill val" شکاف‌های بین بخش‌ها را با \fIval\fR پر کن. این عملیات روی \fIنشانی بارگذاری\fR (LMA) بخش‌ها اعمال می‌شود. این کار با افزایش اندازهٔ بخشی که نشانی پایین‌تری دارد و پر کردن فضای اضافی ایجادشده با \fIval\fR انجام می‌گیرد. .IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4 .IX Item "--pad-to address" فایل خروجی را تا نشانی بارگذاری \fIaddress\fR پُر کن (pad). این کار با افزایش اندازهٔ آخرین بخش انجام می‌شود. فضای اضافی با مقدار مشخص‌شده توسط \fB\-\-gap\-fill\fR (به‌طور پیش‌فرض صفر) پر می‌شود. .IP "\fB\-\-set\-start\fR \fIval\fR" 4 .IX Item "--set-start val" نشانی شروع (که به عنوان نشانی ورودی یا entry address نیز شناخته می‌شود) فایل جدید را روی \fIval\fR تنظیم کن. همهٔ قالب‌های فایل هدف (object file) از تنظیم نشانی شروع پشتیبانی نمی‌کنند. .IP "\fB\-\-change\-start\fR \fIincr\fR" 4 .IX Item "--change-start incr" .PD 0 .IP "\fB\-\-adjust\-start\fR \fIincr\fR" 4 .IX Item "--adjust-start incr" .PD نشانی شروع (که به عنوان نشانی ورودی نیز شناخته می‌شود) را با افزودن \&\fIincr\fR تغییر بده. همهٔ قالب‌های فایل هدف از تنظیم نشانی شروع پشتیبانی نمی‌کنند. .IP "\fB\-\-change\-addresses\fR \fIincr\fR" 4 .IX Item "--change-addresses incr" .PD 0 .IP "\fB\-\-adjust\-vma\fR \fIincr\fR" 4 .IX Item "--adjust-vma incr" .PD نشانی‌های VMA و LMA تمام بخش‌ها و همچنین نشانی شروع را با افزودن \fIincr\fR تغییر بده. برخی از قالب‌های فایل هدف اجازهٔ تغییر دلخواه نشانی بخش‌ها را نمی‌دهند. توجه داشته باشید که این کار بخش‌ها را بازتخصیص (relocate) نمی‌کند؛ اگر برنامه انتظار داشته باشد که بخش‌ها در یک نشانی مشخص بارگذاری شوند و از این گزینه برای تغییر بخش‌ها به گونه‌ای استفاده شود که در نشانی دیگری بارگذاری شوند، ممکن است برنامه با خطا مواجه شود. .IP "\fB\-\-change\-section\-address\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--change-section-address sectionpattern{=,+,-}val" .PD 0 .IP "\fB\-\-adjust\-section\-vma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--adjust-section-vma sectionpattern{=,+,-}val" .PD هر دو نشانی VMA و LMA هر بخشی که با \fIsectionpattern\fR مطابقت دارد را تنظیم کرده یا تغییر بده. اگر از \fB=\fR استفاده شود، نشانی بخش روی \fIval\fR تنظیم می‌شود. در غیر این صورت، مقدار \fIval\fR به نشانی بخش اضافه یا از آن کم می‌شود. توضیحات مربوط به \&\fB\-\-change\-addresses\fR در بالا را ببینید. اگر \fIsectionpattern\fR با هیچ بخشی در فایل ورودی مطابقت نداشته باشد، یک هشدار صادر خواهد شد، مگر اینکه از \&\fB\-\-no\-change\-warnings\fR استفاده شده باشد. .IP "\fB\-\-change\-section\-lma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--change-section-lma sectionpattern{=,+,-}val" نشانی LMA هر بخشی که با \&\fIsectionpattern\fR مطابقت دارد را تنظیم کرده یا تغییر بده. نشانی LMA نشانی‌ای است که بخش در زمان بارگذاری برنامه در حافظه بارگذاری می‌شود. به‌طور معمول این نشانی همان نشانی VMA است که نشانی بخش در زمان اجرای برنامه می‌باشد، اما در برخی سیستم‌ها، به‌ویژه سیستم‌هایی که برنامه در ROM نگهداری می‌شود، این دو می‌توانند متفاوت باشند. اگر از \fB=\fR استفاده شود، نشانی بخش روی \fIval\fR تنظیم می‌شود. در غیر این صورت، \&\fIval\fR به نشانی بخش افزوده یا از آن کم می‌شود. توضیحات زیر \fB\-\-change\-addresses\fR در بالا را ببینید. اگر \&\fIsectionpattern\fR با هیچ بخشی در فایل ورودی مطابقت نداشته باشد، یک هشدار صادر خواهد شد، مگر اینکه از \fB\-\-no\-change\-warnings\fR استفاده شود. .IP "\fB\-\-change\-section\-vma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--change-section-vma sectionpattern{=,+,-}val" نشانی VMA هر بخشی که با \&\fIsectionpattern\fR مطابقت دارد را تنظیم کرده یا تغییر بده. نشانی VMA نشانی‌ای است که پس از شروع اجرای برنامه، بخش در آنجا قرار خواهد گرفت. معمولاً این نشانی همان نشانی LMA است که نشانی بارگذاری بخش در حافظه است، اما در برخی سیستم‌ها، به‌ویژه آن‌هایی که برنامه در ROM نگهداری می‌شود، این دو می‌توانند متفاوت باشند. اگر از \fB=\fR استفاده شود، نشانی بخش روی \&\fIval\fR تنظیم می‌شود. در غیر این صورت، \fIval\fR به نشانی بخش اضافه یا از آن کسر می‌شود. توضیحات زیر \fB\-\-change\-addresses\fR در بالا را ببینید. اگر \fIsectionpattern\fR با هیچ بخشی در فایل ورودی مطابقت نداشته باشد، یک هشدار صادر خواهد شد، مگر اینکه از \&\fB\-\-no\-change\-warnings\fR استفاده شده باشد. .Sp نکته \- تغییر دادن VMA بخش‌ها در یک باینری کاملاً پیوندخورده (fully linked) می‌تواند خطرناک باشد، زیرا ممکن است کدهایی وجود داشته باشند که انتظار دارند بخش‌ها در نشانی قدیمی‌شان قرار داشته باشند. .IP \fB\-\-change\-warnings\fR 4 .IX Item "--change-warnings" .PD 0 .IP \fB\-\-adjust\-warnings\fR 4 .IX Item "--adjust-warnings" .PD اگر از \fB\-\-change\-section\-address\fR یا \fB\-\-change\-section\-lma\fR یا \&\fB\-\-change\-section\-vma\fR استفاده شود، و الگوی بخش با هیچ بخشی مطابقت نداشته باشد، یک هشدار صادر کن. این رفتار پیش‌فرض است. .IP \fB\-\-no\-change\-warnings\fR 4 .IX Item "--no-change-warnings" .PD 0 .IP \fB\-\-no\-adjust\-warnings\fR 4 .IX Item "--no-adjust-warnings" .PD اگر از \fB\-\-change\-section\-address\fR یا \&\fB\-\-adjust\-section\-lma\fR یا \fB\-\-adjust\-section\-vma\fR استفاده شده باشد، حتی اگر الگوی بخش با هیچ بخشی مطابقت نداشته باشد، هشداری صادر نکن. .IP "\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR\fB=\fR\fIflags\fR" 4 .IX Item "--set-section-flags sectionpattern=flags" پرچم‌های هر بخشی را که با \fIsectionpattern\fR مطابقت دارد تنظیم کن. آرگومان \&\fIflags\fR یک رشته از نام‌های پرچم است که با کاما از هم جدا شده‌اند. نام‌های شناخته‌شده عبارتند از: \fBalloc\fR، \fBcontents\fR، \fBload\fR، \&\fBnoload\fR، \fBreadonly\fR، \fBcode\fR، \fBdata\fR، \fBrom\fR، \&\fBexclude\fR، \fBshare\fR، \fBdebug\fR، و \fBlarge\fR. می‌توانید پرچم \fBcontents\fR را برای بخشی که محتوایی ندارد تنظیم کنید، اما پاک کردن پرچم \fBcontents\fR برای بخشی که محتوا دارد معنایی ندارد\-\-به‌جای آن فقط بخش را حذف کنید. همهٔ پرچم‌ها برای تمام قالب‌های فایل هدف معنادار نیستند. به‌ویژه پرچم \&\fBshare\fR فقط برای فایل‌های قالب COFF معنی دارد و برای فایل‌های قالب ELF کاربردی ندارد. پرچم مختص ELF x86\-64 یعنی \fBlarge\fR متناظر با SHF_X86_64_LARGE است. .IP "\fB\-\-set\-section\-alignment\fR \fIsectionpattern\fR\fB=\fR\fIalign\fR" 4 .IX Item "--set-section-alignment sectionpattern=align" هم‌ترازی (alignment) را برای هر بخشی که با \fIsectionpattern\fR مطابقت دارد تنظیم کن. \&\fIalign\fR هم‌ترازی را بر حسب بایت مشخص می‌کند و باید توانی از دو باشد، یعنی ۱، ۲، ۴، ۸.... .Sp نکته \- تنظیم تراز یک بخش، نشانی‌های LMA یا VMA آن را به‌طور خودکار هم‌تراز نخواهد کرد. اگر این نشانی‌ها نیز نیاز به تغییر داشته باشند، باید از گزینه‌های \&\fB\-\-change\-section\-lma\fR و/یا \fB\-\-change\-section\-vma\fR استفاده شود. همچنین توجه داشته باشید که تغییر VMAها در باینری‌های کاملاً پیوندخورده می‌تواند مشکلاتی ایجاد کند، زیرا ممکن است کدهایی وجود داشته باشند که انتظار دارند محتویات بخش‌ها در نشانی قدیمی‌شان قرار داشته باشند. .IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 .IX Item "--add-section sectionname=filename" هنگام رونوشت‌برداری از فایل، یک بخش جدید به نام \fIsectionname\fR اضافه کن. محتویات بخش جدید از فایل \fIfilename\fR گرفته می‌شود. اندازهٔ بخش برابر با اندازهٔ فایل خواهد بود. این گزینه فقط روی قالب‌های فایلی کار می‌کند که از بخش‌هایی با نام‌های دلخواه پشتیبانی می‌کنند. نکته \- ممکن است برای تنظیم ویژگی‌های بخش تازه‌ایجادشده، استفاده از گزینهٔ \fB\-\-set\-section\-flags\fR لازم باشد. .IP "\fB\-\-dump\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 .IX Item "--dump-section sectionname=filename" محتویات بخش به نام \fIsectionname\fR را درون فایل \&\fIfilename\fR قرار بده، و هر محتوایی که پیش‌تر در آن وجود داشته را بازنویسی کن. این گزینه معکوس \fB\-\-add\-section\fR است. این گزینه مشابه گزینهٔ \fB\-\-only\-section\fR است با این تفاوت که فایلی قالب‌بندی‌شده نمی‌سازد، بلکه فقط محتویات را به‌صورت داده‌های باینری خام و بدون اعمال هیچ‌گونه بازتخصیص (relocation) ذخیره می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP "\fB\-\-update\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 .IX Item "--update-section sectionname=filename" محتویات موجود بخشی به نام \fIsectionname\fR را با محتویات فایل \fIfilename\fR جایگزین کن. اندازهٔ بخش متناسب با اندازهٔ فایل تنظیم خواهد شد. پرچم‌های بخش برای \&\fIsectionname\fR بدون تغییر باقی می‌مانند. برای فایل‌های قالب ELF، نگاشت بخش به قطعه (section to segment mapping) نیز بدون تغییر باقی می‌ماند، کاری که با استفاده از \fB\-\-remove\-section\fR و به دنبال آن \&\fB\-\-add\-section\fR امکان‌پذیر نیست. این گزینه می‌تواند بیش از یک بار مشخص شود. .Sp نکته \- استفاده از \fB\-\-rename\-section\fR و \&\fB\-\-update\-section\fR برای به‌روزرسانی و تغییر نام هم‌زمان یک بخش در یک خط فرمان امکان‌پذیر است. در این حالت، نام اصلی بخش را به \&\fB\-\-update\-section\fR، و نام‌های اصلی و جدید بخش را به \&\fB\-\-rename\-section\fR بدهید. .IP "\fB\-\-add\-symbol\fR \fIname\fR\fB=[\fR\fIsection\fR\fB:]\fR\fIvalue\fR\fB[,\fR\fIflags\fR\fB]\fR" 4 .IX Item "--add-symbol name=[section:]value[,flags]" هنگام رونوشت‌برداری از فایل، یک نماد جدید به نام \fIname\fR اضافه کن. این گزینه می‌تواند چندین بار مشخص شود. اگر \fIsection\fR مشخص شده باشد، نماد با آن بخش مرتبط و وابسته به آن خواهد بود، در غیر این صورت یک نماد ABS خواهد بود. مشخص کردن یک بخش تعریف‌نشده منجر به خطای مهلک خواهد شد. هیچ بررسی روی مقدار انجام نمی‌گیرد و دقیقاً همان‌طور که مشخص شده دریافت خواهد شد. پرچم‌های نماد را می‌توان تعیین کرد و همهٔ پرچم‌ها برای تمام قالب‌های فایل هدف معنادار نخواهند بود. به‌طور پیش‌فرض، نماد به‌صورت سراسری (global) خواهد بود. پرچم ویژهٔ \&\*(Aqbefore=\fIothersym\fR\*(Aq نماد جدید را پیش از \fIothersym\fR مشخص‌شده درج می‌کند، در غیر این صورت نماد(ها) به ترتیبی که ظاهر می‌شوند در انتهای جدول نمادها اضافه خواهند شد..IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4 .IX Item "--rename-section oldname=newname[,flags]" نام یک بخش را از \fIoldname\fR به \fInewname\fR تغییر می‌دهد، همراه با امکان تغییر اختیاری پرچم‌های بخش به \fIflags\fR در حین این فرایند. این روش نسبت به استفاده از یک اسکریپت پیونددهنده برای تغییر نام، این مزیت را دارد که خروجی همچنان به عنوان یک فایل شیء باقی می‌ماند و به یک فایل اجرایی پیوند خورده تبدیل نمی‌شود. این گزینه همان مجموعه‌ای از پرچم‌ها را می‌پذیرد که گزینهٔ \&\fB\-\-set\-section\-flags\fR می‌پذیرد. .Sp این گزینه به‌ویژه زمانی مفید است که قالب ورودی binary باشد، چرا که این قالب همواره بخشی به نام .data ایجاد می‌کند. به عنوان مثال، اگر در عوض می‌خواستید بخشی به نام .rodata حاوی داده‌های دودویی ایجاد کنید، می‌توانید از خط فرمان زیر برای دستیابی به آن استفاده کنید: .Sp .Vb 3 \& objcopy \-I binary \-O \-B \e \& \-\-rename\-section .data=.rodata,alloc,load,readonly,data,contents \e \& .Ve .IP "\fB\-\-long\-section\-names {enable,disable,keep}\fR" 4 .IX Item "--long-section-names {enable,disable,keep}" مدیریت نام‌های طولانی بخش‌ها را هنگام پردازش قالب‌های شیء \f(CW\*(C`COFF\*(C'\fR و \f(CW\*(C`PE\-COFF\*(C'\fR کنترل می‌کند. رفتار پیش‌فرض، \fBkeep\fR، حفظ نام‌های طولانی بخش‌ها در صورت وجود در فایل ورودی است. گزینه‌های \fBenable\fR و \fBdisable\fR استفاده از نام‌های طولانی بخش‌ها را در شیء خروجی به‌صورت اجباری فعال یا غیرفعال می‌کنند؛ هنگامی که \fBdisable\fR اعمال شود، هرگونه نام طولانی بخش در شیء ورودی کوتاه خواهد شد. گزینهٔ \fBenable\fR تنها در صورتی نام‌های طولانی بخش‌ها را در خروجی می‌آورد که در ورودی‌ها وجود داشته باشند؛ این عملکرد تا حد زیادی مشابه \fBkeep\fR است، اما این مسئله نامشخص باقی مانده است که آیا گزینهٔ \fBenable\fR ممکن است ایجاد یک جدول رشتهٔ خالی را در فایل خروجی تحمیل کند یا خیر. .IP \fB\-\-change\-leading\-char\fR 4 .IX Item "--change-leading-char" برخی از قالب‌های فایل شیء از نویسه‌های خاصی در آغاز نمادها استفاده می‌کنند. رایج‌ترین نویسه از این دست زیرخط (_) است که کامپایلرها اغلب آن را پیش از هر نماد اضافه می‌کنند. این گزینه به \fBobjcopy\fR اعلام می‌کند که هنگام تبدیل میان قالب‌های فایل شیء، نویسهٔ آغازین هر نماد را تغییر دهد. اگر قالب‌های فایل شیء از نویسهٔ آغازین یکسانی استفاده کنند، این گزینه هیچ اثری نخواهد داشت. در غیر این صورت، بسته به شرایط، یک نویسه اضافه می‌کند، یک نویسه را حذف می‌کند، یا نویسه‌ای را تغییر می‌دهد. .IP \fB\-\-remove\-leading\-char\fR 4 .IX Item "--remove-leading-char" اگر نخستین نویسهٔ یک نماد سراسری، نویسهٔ آغازین نمادین خاصی باشد که توسط قالب فایل شیء استفاده می‌شود، آن نویسه را حذف می‌کند. رایج‌ترین نویسهٔ آغازین نماد، زیرخط (_) است. این گزینه زیرخط آغازین را از تمامی نمادهای سراسری حذف خواهد کرد. این ویژگی می‌تواند زمانی مفید باشد که می‌خواهید اشیایی با قالب‌های فایلی مختلف و با قراردادهای متفاوت برای نام‌گذاری نمادها را به یکدیگر پیوند دهید. این گزینه با \&\fB\-\-change\-leading\-char\fR تفاوت دارد زیرا صرف‌نظر از قالب فایل شیء در فایل خروجی، در صورت لزوم همواره نام نماد را تغییر می‌دهد. .IP \fB\-\-reverse\-bytes=\fR\fInum\fR 4 .IX Item "--reverse-bytes=num" بایت‌ها را در بخشی با محتوای خروجی معکوس می‌کند. طول بخش باید به‌طور مساوی بر مقدار ارائه‌شده بخش‌پذیر باشد تا امکان انجام جابه‌جایی وجود داشته باشد. معکوس‌سازی پیش از انجام درهم‌بافی (interleaving) صورت می‌پذیرد. .Sp این گزینه معمولاً در تولید ایمیج‌های ROM برای سیستم‌های مقصدِ مشکل‌ساز استفاده می‌شود. برای نمونه، در برخی از بردهای مقصد، کلمات ۳۲\-بیتی واکشی‌شده از ROMهای ۸\-بیتی، صرف‌نظر از ترتیب بایت پردازنده (CPU)، به ترتیب بایت little\-endian بازترکیب می‌شوند. بسته به مدل برنامه‌نویسی، ممکن است نیاز باشد ترتیب بایت (endianness) حافظهٔ ROM اصلاح شود. .Sp یک فایل ساده را با بخشی حاوی هشت بایت زیر در نظر بگیرید: \f(CW12345678\fR. .Sp با استفاده از \fB\-\-reverse\-bytes=2\fR برای مثال فوق، بایت‌ها در فایل خروجی به صورت \f(CW21436587\fR مرتب خواهند شد. .Sp با استفاده از \fB\-\-reverse\-bytes=4\fR برای مثال فوق، بایت‌ها در فایل خروجی به صورت \f(CW43218765\fR مرتب خواهند شد. .Sp با استفاده از \fB\-\-reverse\-bytes=2\fR برای مثال فوق، و به دنبال آن اجرای \&\fB\-\-reverse\-bytes=4\fR بر روی فایل خروجی، بایت‌ها در دومین فایل خروجی به صورت \f(CW34127856\fR مرتب خواهند شد. .IP \fB\-\-srec\-len=\fR\fIival\fR 4 .IX Item "--srec-len=ival" تنها برای خروجی srec معنادار است. بیشینهٔ طول رکوردهای Srecord تولیدی را روی \fIival\fR تنظیم می‌کند. این طول شامل هر سه فیلد آدرس، داده و crc می‌شود. .IP \fB\-\-srec\-forceS3\fR 4 .IX Item "--srec-forceS3" تنها برای خروجی srec معنادار است. از تولید رکوردهای S1/S2 جلوگیری کرده و قالبی شامل فقط رکوردهای S3 ایجاد می‌کند. .IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4 .IX Item "--redefine-sym old=new" نام نماد \fIold\fR را به \fInew\fR تغییر می‌دهد. این گزینه زمانی مفید است که قصد دارید دو جزء را که کدمبدأیی از آن‌ها ندارید به یکدیگر پیوند دهید و تداخل نام وجود دارد. .IP \fB\-\-redefine\-syms=\fR\fIfilename\fR 4 .IX Item "--redefine-syms=filename" گزینهٔ \fB\-\-redefine\-sym\fR را بر روی هر جفت‌نماد «\fIold\fR \fInew\fR» فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است، با یک جفت‌نماد در هر خط. توضیحات درون خطوط را می‌توان با نویسهٔ هش (#) مشخص کرد. این گزینه می‌تواند بیش از یک‌بار مشخص شود. .IP \fB\-\-weaken\fR 4 .IX Item "--weaken" تمام نمادهای سراسری موجود در فایل را به نمادهای ضعیف (weak) تبدیل می‌کند. این گزینه زمانی مفید است که در حال ساخت شیئی هستید که قرار است با استفاده از گزینهٔ \fB\-R\fR در پیونددهنده در برابر اشیاء دیگر پیوند داده شود. این گزینه تنها هنگام استفاده از قالب فایل شیئی که از نمادهای ضعیف پشتیبانی می‌کند مؤثر است. .IP \fB\-\-keep\-symbols=\fR\fIfilename\fR 4 .IX Item "--keep-symbols=filename" گزینهٔ \fB\-\-keep\-symbol\fR را برای هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است، با یک نام نماد در هر خط. توضیحات درون خطوط را می‌توان با نویسهٔ هش مشخص کرد. این گزینه می‌تواند بیش از یک‌بار داده شود. .IP \fB\-\-strip\-symbols=\fR\fIfilename\fR 4 .IX Item "--strip-symbols=filename" گزینهٔ \fB\-\-strip\-symbol\fR را برای هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است، با یک نام نماد در هر خط. توضیحات درون خطوط را می‌توان با نویسهٔ هش مشخص کرد. این گزینه می‌تواند بیش از یک‌بار داده شود. .IP \fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR 4 .IX Item "--strip-unneeded-symbols=filename" گزینهٔ \fB\-\-strip\-unneeded\-symbol\fR را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است، با یک نام نماد در هر خط. توضیحات درون خطوط را می‌توان با نویسهٔ هش مشخص کرد. این گزینه می‌تواند بیش از یک‌بار داده شود. .IP \fB\-\-keep\-global\-symbols=\fR\fIfilename\fR 4 .IX Item "--keep-global-symbols=filename" گزینهٔ \fB\-\-keep\-global\-symbol\fR را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است، با یک نام نماد در هر خط. توضیحات درون خطوط را می‌توان با نویسهٔ هش مشخص کرد. این گزینه می‌تواند بیش از یک‌بار داده شود. .IP \fB\-\-localize\-symbols=\fR\fIfilename\fR 4 .IX Item "--localize-symbols=filename" گزینهٔ \fB\-\-localize\-symbol\fR را برای هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است، با یک نام نماد در هر خط. توضیحات درون خطوط را می‌توان با نویسهٔ هش مشخص کرد. این گزینه می‌تواند بیش از یک‌بار داده شود. .IP \fB\-\-globalize\-symbols=\fR\fIfilename\fR 4 .IX Item "--globalize-symbols=filename" گزینهٔ \fB\-\-globalize\-symbol\fR را برای هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است، با یک نام نماد در هر خط. توضیحات درون خطوط را می‌توان با نویسهٔ هش مشخص کرد. این گزینه می‌تواند بیش از یک‌بار داده شود. نکته: این گزینه نمی‌تواند در ترکیب با گزینه‌های \fB\-G\fR یا \fB\-\-keep\-global\-symbol\fR استفاده شود. .IP \fB\-\-weaken\-symbols=\fR\fIfilename\fR 4 .IX Item "--weaken-symbols=filename" گزینهٔ \fB\-\-weaken\-symbol\fR را برای هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است، با یک نام نماد در هر خط. توضیحات درون خطوط را می‌توان با نویسهٔ هش مشخص کرد. این گزینه می‌تواند بیش از یک‌بار داده شود. .IP \fB\-\-alt\-machine\-code=\fR\fIindex\fR 4 .IX Item "--alt-machine-code=index" اگر معماری خروجی دارای کدهای ماشین جایگزین باشد، به جای کد پیش‌فرض از کد \&\fIindex\fRـم استفاده می‌کند. این ویژگی در مواردی مفید است که یک کد رسمی به یک ماشین اختصاص داده شود و زنجیرهٔ ابزار از کد جدید استفاده کند، اما برنامه‌های دیگر همچنان به استفاده از کد اصلی وابسته باشند. در معماری‌های مبتنی بر ELF، اگر جایگزین \fIindex\fR وجود نداشته باشد، با این مقدار به عنوان یک عدد مطلق برخورد می‌شود تا در فیلد e_machine از سرآیند ELF ذخیره گردد. .IP \fB\-\-writable\-text\fR 4 .IX Item "--writable-text" بخش متن (text) خروجی را به عنوان قابل‌نوشتن نشانه‌گذاری می‌کند. این گزینه برای تمام قالب‌های فایل شیء معنادار نیست. .IP \fB\-\-readonly\-text\fR 4 .IX Item "--readonly-text" بخش متن (text) خروجی را محافظت‌شده در برابر نوشتن (فقط‌خواندنی) می‌کند. این گزینه برای تمام قالب‌های فایل شیء معنادار نیست. .IP \fB\-\-pure\fR 4 .IX Item "--pure" فایل خروجی را با ویژگی صفحه‌بندی بر حسب تقاضا (demand paged) نشانه‌گذاری می‌کند. این گزینه برای تمام قالب‌های فایل شیء معنادار نیست. .IP \fB\-\-impure\fR 4 .IX Item "--impure" فایل خروجی را به عنوان ناخالص (impure) نشانه‌گذاری می‌کند. این گزینه برای تمام قالب‌های فایل شیء معنادار نیست. .IP \fB\-\-prefix\-symbols=\fR\fIstring\fR 4 .IX Item "--prefix-symbols=string" رشتهٔ \fIstring\fR را به عنوان پیشوند به تمام نمادها در فایل خروجی اضافه می‌کند. .IP \fB\-\-prefix\-sections=\fR\fIstring\fR 4 .IX Item "--prefix-sections=string" رشتهٔ \fIstring\fR را به عنوان پیشوند به نام تمام بخش‌ها در فایل خروجی اضافه می‌کند. .IP \fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR 4 .IX Item "--prefix-alloc-sections=string" رشتهٔ \&\fIstring\fR را به عنوان پیشوند به نام تمام بخش‌های تخصیص‌یافته در فایل خروجی اضافه می‌کند..IP \fB\-\-add\-gnu\-debuglink=\fR\fIpath\-to\-file\fR 4 .IX Item "--add-gnu-debuglink=path-to-file" یک بخش .gnu_debuglink ایجاد می‌کند که حاوی ارجاعی به \&\fIpath\-to\-file\fR است و آن را به فایل خروجی اضافه می‌نماید. نکته: فایل در \&\fIpath\-to\-file\fR باید وجود داشته باشد. بخشی از فرایند افزودن بخش \&.gnu_debuglink شامل گنجاندن یک چکسام (checksum) از محتویات فایل اطلاعات اشکال‌زدایی در این بخش است. .Sp اگر فایل اطلاعات اشکال‌زدایی در یک مکان ساخته شده است اما قرار است بعداً در مکان متفاوتی نصب شود، از مسیر مکان نصب‌شده استفاده نکنید. گزینهٔ \fB\-\-add\-gnu\-debuglink\fR با شکست مواجه خواهد شد زیرا فایل نصب‌شده هنوز وجود ندارد. به‌جای آن، فایل اطلاعات اشکال‌زدایی را در دایرکتوری جاری قرار داده و از گزینهٔ \fB\-\-add\-gnu\-debuglink\fR بدون مؤلفه‌های دایرکتوری استفاده کنید، به این صورت: .Sp .Vb 1 \& objcopy \-\-add\-gnu\-debuglink=foo.debug .Ve .Sp در زمان اشکال‌زدایی، اشکال‌زدا تلاش می‌کند فایل جداگانهٔ اطلاعات اشکال‌زدایی را در مجموعه‌ای از مکان‌های شناخته‌شده جستجو کند. مجموعهٔ دقیق این مکان‌ها بسته به توزیعِ در حال استفاده متفاوت است، اما معمولاً شامل موارد زیر است: .RS 4 .ie n .IP """* همان دایرکتوری فایل اجرایی.""" 4 .el .IP "\f(CW* همان دایرکتوری فایل اجرایی.\fR" 4 .IX Item "* The same directory as the executable." .PD 0 .ie n .IP """* یک زیردایرکتوری از دایرکتوری حاوی فایل اجرایی""" 4 .el .IP "\f(CW* یک زیردایرکتوری از دایرکتوری حاوی فایل اجرایی\fR" 4 .IX Item "* A sub-directory of the directory containing the executable" .PD به نام .debug .ie n .IP """* یک دایرکتوری سراسری اشکال‌زدایی مانند /usr/lib/debug.""" 4 .el .IP "\f(CW* یک دایرکتوری سراسری اشکال‌زدایی مانند /usr/lib/debug.\fR" 4 .IX Item "* A global debug directory such as /usr/lib/debug." .RE .RS 4 .Sp تا زمانی که فایل اطلاعات اشکال‌زدایی پیش از اجرای اشکال‌زدا در یکی از این مکان‌ها نصب شده باشد، همه‌چیز باید به‌درستی کار کند. .RE .IP \fB\-\-keep\-section\-symbols\fR 4 .IX Item "--keep-section-symbols" هنگام پیراستن یک فایل، مثلاً با \fB\-\-strip\-debug\fR یا \&\fB\-\-strip\-unneeded\fR، تمام نمادهایی که نام بخش‌ها را مشخص می‌کنند و در غیر این صورت حذف می‌شدند، حفظ می‌شوند. .IP \fB\-\-keep\-file\-symbols\fR 4 .IX Item "--keep-file-symbols" هنگام پیراستن یک فایل، مثلاً با \fB\-\-strip\-debug\fR یا \&\fB\-\-strip\-unneeded\fR، تمام نمادهایی که نام فایل‌های منبع را مشخص می‌کنند و در غیر این صورت حذف می‌شدند، حفظ می‌شوند. .IP \fB\-\-only\-keep\-debug\fR 4 .IX Item "--only-keep-debug" فایل را پیرایش می‌کند؛ به این صورت که محتویات هر بخشی را که توسط \&\fB\-\-strip\-debug\fR حذف نمی‌شد حذف کرده و بخش‌های اشکال‌زدایی را دست‌نخورده باقی می‌گذارد. در فایل‌های ELF، این گزینه تمام بخش‌های یادداشت (note) را در خروجی حفظ می‌کند. .Sp نکته \- سرآیندهای بخش‌های پیراسته‌شده، شامل اندازهٔ آن‌ها، حفظ می‌شوند، اما محتویات بخش‌ها دور ریخته می‌شود. سرآیندهای بخش‌ها حفظ می‌شوند تا سایر ابزارها بتوانند فایل debuginfo را با فایل اجرایی واقعی تطبیق دهند، حتی اگر آن فایل اجرایی به فضای نشانی متفاوتی بازنشانی (relocate) شده باشد. .Sp هدف این است که این گزینه در کنار \&\fB\-\-add\-gnu\-debuglink\fR برای ایجاد یک فایل اجرایی دو بخشی استفاده شود. یکی باینری پیراسته‌شده‌ای است که فضای کمتری در RAM و در توزیع اشغال می‌کند و دومی یک فایل اطلاعات اشکال‌زدایی است که تنها در صورت نیاز به قابلیت‌های اشکال‌زدایی مورد نیاز خواهد بود. روال پیشنهادی برای ایجاد این فایل‌ها به شرح زیر است: .RS 4 .IP "1.<فایل اجرایی را طبق روال معمول پیوند دهید. با این فرض که نام آن>" 4 .IX Item "1." \&\f(CW\*(C`foo\*(C'\fR باشد، سپس... .ie n .IP "1.<اجرای ""objcopy \-\-only\-keep\-debug foo foo.dbg"" برای>" 4 .el .IP "1.<اجرای \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR برای>" 4 .IX Item "1." ایجاد فایلی حاوی اطلاعات اشکال‌زدایی. .ie n .IP "1.<اجرای ""objcopy \-\-strip\-debug foo"" برای ایجاد یک>" 4 .el .IP "1.<اجرای \f(CWobjcopy \-\-strip\-debug foo\fR برای ایجاد یک>" 4 .IX Item "1." فایل اجرایی پیراسته‌شده. .ie n .IP "1.<اجرای ""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo"">" 4 .el .IP "1.<اجرای \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR>" 4 .IX Item "1." جهت افزودن پیوندی به اطلاعات اشکال‌زدایی در فایل اجرایی پیراسته‌شده. .RE .RS 4 .Sp نکته\-\-\-انتخاب \f(CW\*(C`.dbg\*(C'\fR به‌عنوان پسوند فایل اطلاعات اشکال‌زدایی اختیاری است. همچنین مرحلهٔ \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR نیز اختیاری است. به‌جای آن می‌توانید این کار را انجام دهید: .IP "1.<فایل اجرایی را طبق روال معمول پیوند دهید.>" 4 .IX Item "1." .PD 0 .ie n .IP "1.<کپی کردن ""foo"" به ""foo.full"">" 4 .el .IP "1.<کپی کردن \f(CWfoo\fR به \f(CWfoo.full\fR>" 4 .IX Item "1." .ie n .IP "1.<اجرای ""objcopy \-\-strip\-debug foo"">" 4 .el .IP "1.<اجرای \f(CWobjcopy \-\-strip\-debug foo\fR>" 4 .IX Item "1." .ie n .IP "1.<اجرای ""objcopy \-\-add\-gnu\-debuglink=foo.full foo"">" 4 .el .IP "1.<اجرای \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR>" 4 .IX Item "1." .PD .RE .RS 4 .Sp یعنی فایلی که گزینهٔ \fB\-\-add\-gnu\-debuglink\fR به آن اشاره می‌کند می‌تواند فایل اجرایی کامل باشد. لزومی ندارد حتماً فایلی باشد که توسط سوییچ \&\fB\-\-only\-keep\-debug\fR ایجاد شده است. .Sp نکته\-\-\-این سوییچ تنها برای استفاده روی فایل‌های کاملاً پیوند‌خورده در نظر گرفته شده است. استفاده از آن روی فایل‌های شیء (object files) که ممکن است اطلاعات اشکال‌زدایی در آن‌ها ناقص باشد معنایی ندارد. علاوه بر این، ویژگی gnu_debuglink در حال حاضر تنها از وجود یک نام فایل حاوی اطلاعات اشکال‌زدایی پشتیبانی می‌کند، نه چندین نام فایل برمبنای یک فایل به‌ازای هر شیء (one\-per\-object\-file). .RE .IP \fB\-\-strip\-dwo\fR 4 .IX Item "--strip-dwo" محتویات تمام بخش‌های DWARF .dwo را حذف کرده، و باقی‌ماندهٔ بخش‌های اشکال‌زدایی و تمام نمادها را دست‌نخورده باقی می‌گذارد. این گزینه برای استفاده توسط کامپایلر به‌عنوان بخشی از گزینهٔ \fB\-gsplit\-dwarf\fR در نظر گرفته شده است، که اطلاعات اشکال‌زدایی را میان فایل .o و یک فایل مجزای .dwo تقسیم می‌کند. کامپایلر تمام اطلاعات اشکال‌زدایی را در همان فایل تولید می‌کند، سپس از گزینهٔ \fB\-\-extract\-dwo\fR برای کپی کردن بخش‌های .dwo به فایل .dwo استفاده می‌نماید، و پس از آن از گزینهٔ \fB\-\-strip\-dwo\fR برای حذف آن بخش‌ها از فایل اصلی .o بهره می‌برد. .IP \fB\-\-extract\-dwo\fR 4 .IX Item "--extract-dwo" محتویات تمام بخش‌های DWARF .dwo را استخراج می‌کند. برای اطلاعات بیشتر، گزینهٔ \fB\-\-strip\-dwo\fR را ببینید. .IP "\fB\-\-file\-alignment\fR \fInum\fR" 4 .IX Item "--file-alignment num" تراز فایل (file alignment) را مشخص می‌کند. بخش‌ها در فایل همیشه در آفست‌هایی از فایل آغاز خواهند شد که مضاربی از این عدد باشند. پیش‌فرض این مقدار 512 است. [این گزینه مخصوص اهداف PE است.] .IP "\fB\-\-heap\fR \fIreserve\fR" 4 .IX Item "--heap reserve" .PD 0 .IP "\fB\-\-heap\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4 .IX Item "--heap reserve,commit" .PD تعداد بایت‌های حافظه را برای رزرو (و در صورت تمایل تخصیص یا commit) مشخص می‌کند تا به‌عنوان هیپ (heap) برای این برنامه استفاده شود. [این گزینه مخصوص اهداف PE است.] .IP "\fB\-\-image\-base\fR \fIvalue\fR" 4 .IX Item "--image-base value" از \fIvalue\fR به‌عنوان نشانی پایهٔ برنامه یا dll شما استفاده می‌کند. این پایین‌ترین مکان حافظه است که هنگام بارگذاری برنامه یا dll شما استفاده خواهد شد. برای کاهش نیاز به بازنشانی (relocate) و بهبود عملکرد dllهای شما، هر یک باید یک نشانی پایهٔ یکتا داشته باشند و با هیچ dll دیگری هم‌پوشانی نداشته باشند. مقدار پیش‌فرض برای فایل‌های اجرایی 0x400000 و برای dllها 0x10000000 است. [این گزینه مخصوص اهداف PE است.] .IP "\fB\-\-section\-alignment\fR \fInum\fR" 4 .IX Item "--section-alignment num" [این گزینه مخصوص اهداف PE است.] .Sp فیلد تراز بخش (section alignment) را در سرآیند PE تنظیم می‌کند \- در صورتی که در فایل باینری وجود داشته باشد. بخش‌ها در حافظه همیشه در نشانی‌هایی آغاز خواهند شد که مضربی از این عدد هستند. مقدار پیش‌فرض 0x1000 است. .Sp نکته \- اگر نشانی‌های LMA یا VMA یک بخش دیگر تراز نباشند، و آن نشانی‌ها از طریق گزینه‌های \fB\-\-set\-section\-lma\fR یا \&\fB\-\-set\-section\-vma\fR تنظیم نشده باشند، و فایل به‌طور کامل بازنشانی (relocate) شده باشد، یک پیام هشدار صادر خواهد شد. سپس تصمیم‌گیری در مورد این‌که آیا LMA و VMA نیاز به به‌روزرسانی دارند یا خیر، بر عهدهٔ کاربر خواهد بود. .IP "\fB\-\-stack\fR \fIreserve\fR" 4 .IX Item "--stack reserve" .PD 0 .IP "\fB\-\-stack\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4 .IX Item "--stack reserve,commit" .PD تعداد بایت‌های حافظه را برای رزرو (و در صورت تمایل تخصیص یا commit) مشخص می‌کند تا به‌عنوان پشته (stack) برای این برنامه استفاده شود. [این گزینه مخصوص اهداف PE است.].IP "\fB\-\-subsystem\fR \fIwhich\fR" 4 .IX Item "--subsystem which" .PD 0 .IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR" 4 .IX Item "--subsystem which:major" .IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR\fB.\fR\fIminor\fR" 4 .IX Item "--subsystem which:major.minor" .PD زیرسیستمی را مشخص می‌کند که برنامه شما تحت آن اجرا خواهد شد. مقادیر مجاز برای \fIwhich\fR عبارتند از \f(CW\*(C`native\*(C'\fR، \f(CW\*(C`windows\*(C'\fR، \&\f(CW\*(C`console\*(C'\fR، \f(CW\*(C`posix\*(C'\fR، \f(CW\*(C`efi\-app\*(C'\fR، \f(CW\*(C`efi\-bsd\*(C'\fR، \&\f(CW\*(C`efi\-rtd\*(C'\fR، \f(CW\*(C`sal\-rtd\*(C'\fR و \f(CW\*(C`xbox\*(C'\fR. همچنین می‌توانید نسخه زیرسیستم را نیز به صورت اختیاری تعیین کنید. مقادیر عددی نیز برای \&\fIwhich\fR پذیرفته می‌شوند. [این گزینه مختص اهداف PE است.] .IP \fB\-\-extract\-symbol\fR 4 .IX Item "--extract-symbol" پرچم‌ها و نمادهای بخش‌های فایل را نگه می‌دارد اما تمام داده‌های بخش‌ها را حذف می‌کند. به‌طور مشخص، این گزینه: .RS 4 .IP "*<محتوای تمام بخش‌ها را حذف می‌کند؛>" 4 .IX Item "*" .PD 0 .IP "*<اندازه هر بخش را برابر با صفر قرار می‌دهد؛ و>" 4 .IX Item "*" .IP "*<آدرس شروع فایل را برابر با صفر قرار می‌دهد.>" 4 .IX Item "*" .PD .RE .RS 4 .Sp این گزینه برای ساخت یک فایل \fI.sym\fR برای یک هسته VxWorks استفاده می‌شود. همچنین می‌تواند روش مفیدی برای کاهش اندازه فایل ورودی پیونددهنده برای \fB\-\-just\-symbols\fR باشد. .RE .IP \fB\-\-compress\-debug\-sections\fR 4 .IX Item "--compress-debug-sections" بخش‌های اشکال‌زدایی DWARF را با استفاده از zlib به همراه SHF_COMPRESSED از ELF ABI فشرده می‌کند. توجه \- اگر فشرده‌سازی در واقع باعث \fIبزرگ‌تر\fR شدن یک بخش شود، آن بخش فشرده نمی‌شود. .IP \fB\-\-compress\-debug\-sections=none\fR 4 .IX Item "--compress-debug-sections=none" .PD 0 .IP \fB\-\-compress\-debug\-sections=zlib\fR 4 .IX Item "--compress-debug-sections=zlib" .IP \fB\-\-compress\-debug\-sections=zlib\-gnu\fR 4 .IX Item "--compress-debug-sections=zlib-gnu" .IP \fB\-\-compress\-debug\-sections=zlib\-gabi\fR 4 .IX Item "--compress-debug-sections=zlib-gabi" .IP \fB\-\-compress\-debug\-sections=zstd\fR 4 .IX Item "--compress-debug-sections=zstd" .PD برای فایل‌های ELF، این گزینه‌ها چگونگی فشرده‌سازی بخش‌های اشکال‌زدایی DWARF را کنترل می‌کنند. گزینه \fB\-\-compress\-debug\-sections=none\fR معادل \fB\-\-decompress\-debug\-sections\fR است. گزینه‌های \&\fB\-\-compress\-debug\-sections=zlib\fR و \&\fB\-\-compress\-debug\-sections=zlib\-gabi\fR معادل \&\fB\-\-compress\-debug\-sections\fR هستند. گزینه \&\fB\-\-compress\-debug\-sections=zlib\-gnu\fR بخش‌های اشکال‌زدایی DWARF را با استفاده از قالب منسوخ‌شده zlib\-gnu فشرده می‌کند. نام بخش‌های اشکال‌زدایی تغییر می‌یابد تا با \fB.zdebug\fR آغاز شوند. گزینه \&\fB\-\-compress\-debug\-sections=zstd\fR بخش‌های اشکال‌زدایی DWARF را با استفاده از zstd فشرده می‌کند. توجه \- اگر فشرده‌سازی در واقع باعث \fIبزرگ‌تر\fR شدن یک بخش شود، آن بخش نه فشرده شده و نه تغییر نام داده می‌شود. .IP \fB\-\-decompress\-debug\-sections\fR 4 .IX Item "--decompress-debug-sections" بخش‌های اشکال‌زدایی DWARF را از حالت فشرده خارج می‌کند. برای یک بخش \fB.zdebug\fR، نام اصلی آن بازیابی می‌شود. .IP \fB\-\-elf\-stt\-common=yes\fR 4 .IX Item "--elf-stt-common=yes" .PD 0 .IP \fB\-\-elf\-stt\-common=no\fR 4 .IX Item "--elf-stt-common=no" .PD برای فایل‌های ELF، این گزینه‌ها مشخص می‌کنند که آیا نمادهای عمومی (common) باید به نوع \f(CW\*(C`STT_COMMON\*(C'\fR تبدیل شوند یا \f(CW\*(C`STT_OBJECT\*(C'\fR. گزینه \&\fB\-\-elf\-stt\-common=yes\fR نوع نمادهای عمومی را به \&\f(CW\*(C`STT_COMMON\*(C'\fR تبدیل می‌کند. گزینه \fB\-\-elf\-stt\-common=no\fR نوع نمادهای عمومی را به \f(CW\*(C`STT_OBJECT\*(C'\fR تبدیل می‌نماید. .IP \fB\-\-merge\-notes\fR 4 .IX Item "--merge-notes" .PD 0 .IP \fB\-\-no\-merge\-notes\fR 4 .IX Item "--no-merge-notes" .PD برای فایل‌های ELF، تلاش می‌کند (یا تلاش نمی‌کند) با حذف یادداشت‌های تکراری، اندازه هر بخش از نوع SHT_NOTE را کاهش دهد. .IP \fB\-V\fR 4 .IX Item "-V" .PD 0 .IP \fB\-\-version\fR 4 .IX Item "--version" .PD شماره نسخه \fBobjcopy\fR را نمایش می‌دهد. .IP \fB\-\-verilog\-data\-width=\fR\fIbytes\fR 4 .IX Item "--verilog-data-width=bytes" برای خروجی Verilog، این گزینه تعداد بایت‌های تبدیل‌شده برای هر عنصر داده خروجی را کنترل می‌کند. هدف ورودی، ترتیب بایت‌ها (endianness) در تبدیل را مشخص می‌کند. .IP \fB\-v\fR 4 .IX Item "-v" .PD 0 .IP \fB\-\-verbose\fR 4 .IX Item "--verbose" .PD خروجی پرگو: فهرستی از تمام فایل‌های شیء اصلاح‌شده را نمایش می‌دهد. در مورد آرشیوها، \fBobjcopy \-V\fR تمام اعضای آرشیو را فهرست می‌کند. .IP \fB\-\-help\fR 4 .IX Item "--help" خلاصه‌ای از گزینه‌های \fBobjcopy\fR را نشان می‌دهد. .IP \fB\-\-info\fR 4 .IX Item "--info" فهرستی از تمامی معماری‌ها و قالب‌های شیء در دسترس را نمایش می‌دهد. .IP \fB@\fR\fIfile\fR 4 .IX Item "@file" گزینه‌های خط فرمان را از \fIfile\fR می‌خواند. گزینه‌های خوانده‌شده به جای گزینه اصلی @\fIfile\fR درج می‌شوند. اگر \fIfile\fR وجود نداشته باشد، یا قابل خواندن نباشد، با این گزینه به‌صورت تحت‌اللفظی رفتار خواهد شد و حذف نمی‌شود. .Sp گزینه‌ها در \fIfile\fR با نویسه فاصله سفید (whitespace) از یکدیگر جدا می‌شوند. یک نویسه فاصله سفید می‌تواند با محصور کردن کل گزینه در علامت نقل‌قول تکی یا جفتی، در یک گزینه گنجانده شود. هر نویسه‌ای (از جمله بک‌اسلش) می‌تواند با قرار دادن یک پیشوند بک‌اسلش قبل از آن درج گردد. خود \fIfile\fR می‌تواند شامل گزینه‌های @\fIfile\fR بیشتری باشد؛ هر یک از این گزینه‌ها به‌صورت بازگشتی پردازش خواهند شد..SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBld\fR\|(1)، \fBobjdump\fR\|(1)، و مدخل‌های Info برای \fIbinutils\fR. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .IX Header "COPYRIGHT" Copyright (c) 1991\-2025 Free Software Foundation, Inc. .PP اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخه 1.3 یا هر نسخه جدیدتر منتشر شده توسط بنیاد نرم‌افزارهای آزاد (Free Software Foundation) اعطا می‌شود؛ بدون هیچ بخش ثابت (Invariant Sections)، بدون متن‌های روی جلد (Front\-Cover Texts)، و بدون متن‌های پشت جلد (Back\-Cover Texts). نسخه‌ای از این مجوز در بخشی با عنوان \(lqGNU Free Documentation License\(rq آمده است.