.\" -*- 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-08-31 binutils-2.47 "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\-\-binary\-symbol\-prefix\fR\fIstring\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 برای خواندن و نوشتن فایل‌های شیء از کتابخانهٔ GNU BFD استفاده می‌کند. این ابزار می‌تواند فایل شیء مقصد را در قالبی متفاوت از فایل شیء مبدأ بنویسد. رفتار دقیق \fBobjcopy\fR توسط گزینه‌های خط فرمان کنترل می‌شود. توجه داشته باشید که \fBobjcopy\fR باید بتواند یک فایل کاملاً پیوند‌خورده را بین هر دو قالبی کپی کند؛ با این حال، کپی کردن یک فایل شیء بازجاگذاری‌پذیر (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) از محتویات فایل شیء ورودی ایجاد خواهد کرد. تمام نمادها و اطلاعات بازجاگذاری دور ریخته می‌شوند. تخلیهٔ حافظه از نشانی بارگذاری پایین‌ترین بخشی که در فایل خروجی کپی شده است، آغاز خواهد شد. .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 منجر به رفتار تعریف‌نشده (undefined behaviour) خواهد شد. .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" بازجاگذاری‌های غیرپویا را برای هر بخشی که با \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 اطلاعات بازجاگذاری و نمادها را از فایل مبدأ کپی نمی‌کند. همچنین بخش‌های اشکال‌زدایی را حذف می‌کند. .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 را سراسری (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 symbols) تبدیل نمی‌شوند. .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 را به نماد ضعیف تبدیل می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-binary\-symbol\-prefix=\fR\fIstring\fR 4 .IX Item "--binary-symbol-prefix=string" هنگامی که همراه با \fB\-\-input\-target=binary\fR استفاده شود، \fIstring\fR را به عنوان نام پایه برای نمادهای تولیدشده برای فایل ورودی تنظیم می‌کند. این نمادها عبارتند از: .Sp .Vb 3 \& _start \& _end \& _size .Ve .Sp به‌طور پیش‌فرض، گرداننده ورودی باینری نام پیشوند نماد را از نسخه دگرگون‌شدهٔ (mangled) نام فایل ورودی و پیشوند _binary به دست می‌آورد. این گزینه امکان مشخص کردن صریح آن را فراهم می‌کند. .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 عبارت‌های منظم (regular expressions) را در \fIsymbolname\fRهایی که در سایر گزینه‌های خط فرمان به کار می‌روند مجاز می‌کند. عملگرهای علامت سؤال (?)، ستاره (*)، ممیز وارونه (\e) و قلاب‌ها ([]) می‌توانند در هر کجای نام نماد به کار بروند. اگر نخستین نویسهٔ نام نماد علامت تعجب (!) باشد، مفهوم کلید برای آن نماد معکوس می‌شود. برای نمونه: .Sp .Vb 1 \& \-w \-W !foo \-W fo* .Ve .Sp باعث می‌شود که \fBobjcopy\fR تمام نمادهایی را که با \(lqfo\(rq شروع می‌شوند، به جز نماد \(lqfoo\(rq تضعیف (weak) کند. .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 این گزینه می‌تواند برای ساخت ایمیج‌هایی برای دو حافظه فلش 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 در حالت \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 لایه‌گذاری (pad) می‌کند. این کار با افزایش اندازهٔ آخرین بخش انجام می‌شود. فضای اضافی با مقدار مشخص‌شده توسط \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 تغییر آدرس شروع (که به عنوان آدرس ورودی یا entry address نیز شناخته می‌شود) با افزودن \&\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، نگاشت بخش به سگمنت (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]" افزودن یک نماد (symbol) جدید با نام \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 در حین این فرآیند. این روش نسبت به استفاده از اسکریپت پیونددهنده (linker script) برای تغییر نام، این مزیت را دارد که خروجی همچنان یک فایل شیء باقی می‌ماند و تبدیل به یک فایل اجرایی پیوندخورده نمی‌شود. این گزینه همان مجموعه پرچم‌های گزینه \&\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 در حال اجرا باشد، هرگونه نام طولانی بخش در شیء ورودی کوتاه خواهد شد. گزینه \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" اگر اولین نویسه یک نماد سراسری، نویسه خاص آغازین نماد باشد که توسط قالب فایل شیء استفاده شده است، آن نویسه را حذف کن. متداول‌ترین نویسه آغازین نماد، زیرخط (underscore) است. این گزینه زیرخط آغازین را از تمام نمادهای سراسری حذف خواهد کرد. این ویژگی می‌تواند زمانی مفید باشد که بخواهید اشیاء با قالب‌های فایل مختلف را که قواعد نام‌گذاری متفاوتی برای نمادها دارند به یکدیگر پیوند دهید. این گزینه با \&\fB\-\-change\-leading\-char\fR تفاوت دارد زیرا صرف‌نظر از قالب فایل شیءِ فایل خروجی، در صورت لزوم همواره نام نماد را تغییر می‌دهد..IP \fB\-\-reverse\-bytes=\fR\fInum\fR 4 .IX Item "--reverse-bytes=num" بایت‌ها را در بخشی با محتویات خروجی معکوس می‌کند. برای اینکه امکان جابه‌جایی بایت‌ها وجود داشته باشد، طول بخش باید بر مقدار داده‌شده بخش‌پذیر باشد. معکوس‌سازی پیش از انجام درهم‌بافی (interleaving) صورت می‌گیرد. .Sp این گزینه معمولاً در تولید تصاویر ROM برای سیستم‌های مقصد خاص و مشکل‌ساز به‌کار می‌رود. برای نمونه، در برخی بردهای مقصد، کلمات ۳۲بیتی که از ROMهای ۸بیتی واکشی می‌شوند، بدون در نظر گرفتن ترتیب بایت پردازنده، با ترتیب بایت 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 معنادار است. حداکثر طول S-recordهای تولیدی را روی \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) تبدیل می‌کند. این گزینه هنگام ساخت یک فایل شیء (object) که قرار است با استفاده از گزینهٔ \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" بخش متن خروجی را در برابر نوشتن محافظت می‌کند (فقط‌خواندنی). این گزینه برای تمام قالب‌های فایل شیء معنادار نیست. .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 را به ابتدای نام تمام بخش‌های تخصیص‌یافته (allocated) در فایل خروجی اضافه می‌کند. .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 .IP \(bu 4 همان دایرکتوری حاوی فایل اجرایی. .IP \(bu 4 یک زیردایرکتوری از دایرکتوری حاوی فایل اجرایی با نام .debug. .IP \(bu 4 یک دایرکتوری اشکال‌زدایی سراسری مانند /usr/lib/debug. .RE .RS 4 .Sp تا زمانی که فایل اطلاعات اشکال‌زدایی پیش از اجرای دیباگر در یکی از این مکان‌ها نصب شده باشد، همه‌چیز باید به‌درستی کار کند. .RE .IP \fB\-\-keep\-section\-symbols\fR 4 .IX Item "--keep-section-symbols" هنگام پیراستن (strip) یک فایل، برای نمونه با \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 فایل اجرایی را طبق روال معمول پیوند دهید. با فرض اینکه نام آن \f(CW\*(C`foo\*(C'\fR باشد، سپس....IP 2. 4 اجرای دستور \f(CW\*(C`objcopy \-\-only\-keep\-debug foo foo.dbg\*(C'\fR برای ایجاد فایلی حاوی اطلاعات اشکال‌زدایی. .IP 3. 4 اجرای دستور \f(CW\*(C`objcopy \-\-strip\-debug foo\*(C'\fR برای ایجاد یک فایل اجرایی پیراسته (stripped). .IP 4. 4 اجرای دستور \f(CW\*(C`objcopy \-\-add\-gnu\-debuglink=foo.dbg foo\*(C'\fR برای افزودن پیوندی به اطلاعات اشکال‌زدایی درون فایل اجرایی پیراسته. .RE .RS 4 .Sp نکته\-\-\-انتخاب \f(CW\*(C`.dbg\*(C'\fR به عنوان پسوند فایل اطلاعات اشکال‌زدایی دلخواه است. همچنین مرحلهٔ \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR اختیاری است. در عوض می‌توانید این کار را انجام دهید: .IP 1. 4 پیوند دادن فایل اجرایی طبق روال معمول. .IP 2. 4 رونوشت گرفتن از \f(CW\*(C`foo\*(C'\fR به \f(CW\*(C`foo.full\*(C'\fR. .IP 3. 4 اجرای دستور \f(CW\*(C`objcopy \-\-strip\-debug foo\*(C'\fR. .IP 4. 4 اجرای دستور \f(CW\*(C`objcopy \-\-add\-gnu\-debuglink=foo.full foo\*(C'\fR. .RE .RS 4 .Sp به این معنی که فایلی که با \fB\-\-add\-gnu\-debuglink\fR به آن اشاره می‌شود می‌تواند همان فایل اجرایی کامل باشد. الزامی نیست فایلی باشد که توسط سوییچ \&\fB\-\-only\-keep\-debug\fR ساخته شده است. .Sp نکته\-\-\-این سوییچ تنها برای استفاده روی فایل‌های کاملاً پیوندخورده در نظر گرفته شده است. استفاده از آن روی فایل‌های شیء (object files) که اطلاعات اشکال‌زدایی آن‌ها ممکن است ناقص باشد منطقی نیست. به‌علاوه، قابلیت 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 تنظیم فیلد تراز بخش (section alignment) در سرآیند PE \- در صورتی که در فایل دودویی موجود باشد. بخش‌ها در حافظه همواره در آدرس‌هایی آغاز خواهند شد که مضربی از این عدد باشند. مقدار پیش‌فرض 0x1000 است. .Sp نکته \- اگر آدرس‌های LMA یا VMA یک بخش دیگر تراز نباشند، و این آدرس‌ها از طریق گزینه‌های \fB\-\-set\-section\-lma\fR یا \&\fB\-\-set\-section\-vma\fR تنظیم نشده باشند، و فایل به طور کامل بازآرایی شده باشد، یک پیام هشدار صادر خواهد شد. سپس این بر عهدهٔ کاربر خواهد بود که تصمیم بگیرد آیا 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 \(bu 4 محتوای تمامی بخش‌ها را حذف می‌کند. .IP \(bu 4 اندازهٔ هر بخش را روی صفر تنظیم می‌کند. .IP \(bu 4 آدرس آغازین فایل را روی صفر تنظیم می‌کند. .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، این گزینه‌ها مشخص می‌کنند که آیا نمادهای عمومی باید به نوع \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" کپی‌رایت (c) 1991\-2026 متعلق به Free Software Foundation, Inc. .PP مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخهٔ 1.3 یا هر نسخهٔ متأخرتر منتشر شده توسط بنیاد نرم‌افزارهای آزاد (Free Software Foundation) صادر شده است؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد. یک نسخه از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.