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