.\" -*- 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" ابزار GNU \fBobjcopy\fR محتویات یک فایل شیء (object file) را به فایلی دیگر کپی می‌کند. \fBobjcopy\fR برای خواندن و نوشتن فایل‌های شیء از کتابخانه GNU BFD استفاده می‌کند. این ابزار می‌تواند فایل شیء مقصد را در قالبی متفاوت از فایل شیء مبدأ ذخیره کند. رفتار دقیق \fBobjcopy\fR توسط گزینه‌های خط فرمان کنترل می‌شود. توجه داشته باشید که \fBobjcopy\fR باید بتواند یک فایل کاملاً پیوندخورده (fully linked) را بین هر دو قالب دلخواه کپی کند؛ با این حال، کپی کردن یک فایل شیء بازآدرس‌پذیر (relocatable) بین هر دو قالب ممکن است مطابق انتظار عمل نکند. .PP \&\fBobjcopy\fR برای انجام تبدیل‌های خود فایل‌های موقتی ایجاد کرده و پس از اتمام کار، آن‌ها را حذف می‌کند. \fBobjcopy\fR برای تمام کارهای تبدیل خود از BFD استفاده می‌کند؛ این ابزار به تمام قالب‌های توصیف‌شده در BFD دسترسی دارد و از این رو می‌تواند اغلب قالب‌ها را بدون نیاز به مشخص کردن صریح تشخیص دهد. .PP می‌توان از \fBobjcopy\fR برای تولید S\-recordها با تعیین مقصد خروجی \fBsrec\fR استفاده کرد (برای مثال، استفاده از \fB\-O srec\fR). .PP همچنین می‌توان از \fBobjcopy\fR برای تولید یک فایل باینری خام با تعیین مقصد خروجی \fBbinary\fR استفاده کرد (برای مثال، استفاده از \fB\-O binary\fR). هنگامی که \fBobjcopy\fR یک فایل باینری خام تولید می‌کند، در واقع یک نسخه تخلیه حافظه (memory dump) از محتویات فایل شیء ورودی ایجاد می‌کند. تمام نمادها و اطلاعات بازآدرس‌دهی دور ریخته می‌شوند. تخلیه حافظه از نشانی بارگذاری (load address) پایین‌ترین بخشی که در فایل خروجی کپی شده است، آغاز خواهد شد. .PP هنگام تولید یک S\-record یا یک فایل باینری خام، استفاده از \fB\-S\fR برای حذف بخش‌های حاوی اطلاعات اشکال‌زدایی می‌تواند مفید باشد. در برخی موارد، گزینه \fB\-R\fR برای حذف بخش‌هایی که حاوی اطلاعات غیرضروری برای فایل باینری هستند کاربردی خواهد بود. .PP نکته\(em\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 تطابق داشته باشد از فایل خروجی حذف می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید که استفاده نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند. نویسه‌های عامه‌پسند (wildcard) در \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" سرآیندهای بخش (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 حذف می‌شوند، تمام نمادهایی را که برای پردازش بازآدرس‌دهی نیاز نیستند نیز حذف می‌کند. .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 را از فایل مبدأ کپی نمی‌کند مگر اینکه برای یک بازآرایی (relocation) مورد نیاز باشد. این گزینه می‌تواند بیش از یک بار مشخص شود. .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 را سراسری نگه می‌دارد. تمامی نمادهای دیگر را برای فایل محلی می‌کند، به طوری که از خارج قابل مشاهده نباشند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه: این گزینه نمی‌تواند همراه با گزینه‌های \fB\-\-globalize\-symbol\fR یا \&\fB\-\-globalize\-symbols\fR استفاده شود. .IP \fB\-\-localize\-hidden\fR 4 .IX Item "--localize-hidden" در یک شیء ELF، تمام نمادهایی را که دید (visibility) پنهان یا داخلی دارند به عنوان محلی علامت‌گذاری می‌کند. این گزینه علاوه بر گزینه‌های محلی‌سازی مخصوص نماد مانند \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 یک نماد سراسری یا ضعیف با نام \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 باعث می‌شود \fBobjcopy\fR تمام نمادهایی را که با «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 اگر درهم‌بافی (interleaving) از طریق گزینهٔ \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 این گزینه می‌تواند برای ساخت ایمیج‌هایی برای دو فلش ۱۶ بیتیِ درهم‌بافته‌شده در یک گذرگاه ۳۲ بیتی، با ارسال \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ها و برچسب‌های زمانی از صفر استفاده می‌کند و برای تمامی فایل‌ها حالت‌های فایلی (file modes) یکنواخت به کار می‌برد. .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 در حالت \fIقطعی\fR عمل \fIنمی‌کند\fR. این برعکس گزینهٔ \fB\-D\fR در بالا است: هنگام کپی کردن اعضای آرشیو و نوشتن نمایهٔ آرشیو، از مقادیر واقعی UID، GID، برچسب زمانی و حالت فایلیِ آن‌ها استفاده می‌کند. .Sp این حالت پیش‌فرض است مگر اینکه \fIbinutils\fR با \&\fB\-\-enable\-deterministic\-archives\fR پیکربندی شده باشد. .IP \fB\-\-debugging\fR 4 .IX Item "--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 پد (پر) می‌کند. این کار با افزایش اندازهٔ آخرین بخش انجام می‌شود. فضای اضافی با مقدار مشخص‌شده توسط \fB\-\-gap\-fill\fR (پیش‌فرض صفر) پر می‌شود. .IP "\fB\-\-set\-start\fR \fIval\fR" 4 .IX Item "--set-start val" آدرس شروع (که به عنوان آدرس ورودی نیز شناخته می‌شود) فایل جدید را روی \fIval\fR تنظیم می‌کند. همهٔ قالب‌های فایل شیء از تنظیم آدرس شروع پشتیبانی نمی‌کنند. .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 binary) می‌تواند خطرناک باشد، زیرا ممکن است کدهایی وجود داشته باشند که انتظار دارند بخش‌ها در همان نشانی قدیمی‌شان مستقر باشند. .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" هم‌ترازی را برای هر بخشی که با \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، نگاشت بخش به قطعه (segment) نیز بدون تغییر باقی خواهد ماند، امری که با استفاده از \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 این گزینه به‌ویژه زمانی که قالب ورودی باینری باشد بسیار مفید است، چرا که در این حالت همواره بخشی به نام .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 برقرار باشد، هرگونه نام بخش طولانی در شیء ورودی کوتاه (truncate) خواهد شد. گزینهٔ \fBenable\fR تنها در صورتی نام‌های بخش طولانی را تولید می‌کند که در ورودی‌ها وجود داشته باشند؛ این عملکرد عمدتاً مانند \fBkeep\fR است، اما اینکه آیا گزینه \fBenable\fR ممکن است ایجاد یک جدول رشته‌ای خالی در فایل خروجی را اجباری کند یا خیر، نامشخص رها شده است. .IP \fB\-\-change\-leading\-char\fR 4 .IX Item "--change-leading-char" برخی قالب‌های فایل شیء از نویسه‌های خاصی در ابتدای نمادها استفاده می‌کنند. متداول‌ترین چنین نویسه‌ای زیرخط (underscore) است که کامپایلرها اغلب پیش از هر نماد اضافه می‌کنند. این گزینه به \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های ۸\-بیتی، صرف‌نظر از ترتیب بایت پردازنده، با ترتیب بایت اندیان کوچک (little\-endian) بازسرهم‌بندی می‌شوند. بسته به مدل برنامه‌نویسی، ممکن است نیاز به اصلاح وضعیت اندیان حافظه 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 معنادار است. بیشینهٔ طول رکوردهای S (یا 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 صرفاً یک فایل متنی ساده (flat file) با یک جفت‌نماد در هر سطر است. توضیح خطوط می‌تواند با نویسهٔ هش (#) مشخص شود. این گزینه می‌تواند بیش از یک بار مشخص شود. .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\-ام استفاده می‌کند. این ویژگی در حالتی مفید است که به یک ماشین یک کد رسمی اختصاص داده شده و زنجیرهٔ ابزار (toolchain) کد جدید را به کار می‌گیرد، اما دیگر برنامه‌ها هنوز به استفاده از کد اصلی وابسته‌اند. برای معماری‌های مبتنی بر 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 را با فایل اجرایی واقعی تطبیق دهند، حتی اگر آن فایل اجرایی به فضای آدرس متفاوتی بازنشانی شده باشد. .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 نکته\-\-\-این سوییچ تنها برای استفاده روی فایل‌های کاملاً پیوندیافته در نظر گرفته شده است. استفاده از آن روی فایل‌های شیء که ممکن است اطلاعات اشکال‌زدایی در آن‌ها ناقص باشد معقول نیست. گذشته از این، قابلیت gnu_debuglink در حال حاضر تنها از وجود یک نام فایل حاوی اطلاعات اشکال‌زدایی پشتیبانی می‌کند، نه چندین نام فایل برمبنای یک فایل به‌ازای هر شیء. .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 تنظیم فیلد تراز بخش در هدر 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" پرچم‌های بخش‌ها (section flags) و نمادهای فایل را نگه می‌دارد اما تمام داده‌های بخش‌ها را حذف می‌کند. به طور مشخص، این گزینه: .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 symbols) باید به نوع \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 خروجی پرگو: فهرست کردن تمام فایل‌های شیء (object files) تغییریافته. در مورد بایگانی‌ها، دستور \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) اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد. نسخه‌ای از این مجوز در بخشی تحت عنوان «GNU Free Documentation License» گنجانده شده است.