.\" -*- 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-26 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)" loongarch64-linux-gnu-objcopy \- کپی و تبدیل فرمت فایل‌های شیء و باینری در معماری LoongArch64 .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 باید بتواند یک فایل کاملاً پیوندخورده (fully linked) را بین هر دو فرمتی کپی کند. با این حال، کپی کردن یک فایل شیء بازتخصیص‌پذیر (relocatable) بین دو فرمت ممکن است طبق انتظار کار نکند. .PP \&\fBobjcopy\fR برای انجام تبدیل‌های خود فایل‌های موقتی می‌سازد و پس از اتمام کار آن‌ها را حذف می‌کند. \&\fBobjcopy\fR از BFD برای تمام کارهای تبدیل استفاده می‌کند؛ این ابزار به تمام فرمت‌های تعریف‌شده در BFD دسترسی دارد و بنابراین می‌تواند بیشتر فرمت‌ها را بدون نیاز به مشخص کردن صریح تشخیص دهد. .PP می‌توان از \fBobjcopy\fR برای تولید فایل‌های S\-record با تعیین مقصد خروجی \fBsrec\fR استفاده کرد (مثلاً با استفاده از \fB\-O srec\fR). .PP می‌توان از \fBobjcopy\fR برای تولید فایل خام باینری (raw binary) با تعیین مقصد خروجی \fBbinary\fR استفاده کرد (مثلاً با استفاده از \fB\-O binary\fR). هنگامی که \fBobjcopy\fR یک فایل خام باینری تولید می‌کند، اساساً یک دامپ حافظه (memory dump) از محتویات فایل شیء ورودی ایجاد خواهد کرد. تمام نمادها و اطلاعات بازتخصیص دور ریخته می‌شوند. دامپ حافظه از آدرس بارگذاری پایین‌ترین بخش (section) کپی‌شده در فایل خروجی شروع خواهد شد. .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) را حذف می‌کند. .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 را از فایل مبدأ کپی نمی‌کند مگر اینکه برای یک بازتخصیص مورد نیاز باشد. این گزینه می‌تواند بیش از یک بار مشخص شود. .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، تمام نمادهایی را که دیدپذیری (visibility) مخفی (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\-\-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 باعث می‌شود 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 عرض پیش‌فرض درهم‌آمیزی 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 تعریف شده باشد. اگر تعریف شده باشد، از این متغیر به عنوان تاریخ ذخیره‌شده در هدر (به صورت تعداد ثانیه‌ها از مبدأ زمان یونیکس) استفاده خواهد شد. .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 با بایت‌های خالی پر می‌کند (پدینگ). این کار با افزایش اندازه آخرین بخش انجام می‌شود. فضای اضافی با مقدار مشخص‌شده توسط \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 تغییر می‌دهد. برخی از فرمت‌های فایل شیء اجازه تغییر اختیاری آدرس‌های بخش را نمی‌دهند. توجه داشته باشید که این کار بخش‌ها را بازتخصیص نمی‌دهد؛ اگر برنامه انتظار داشته باشد بخش‌ها در آدرس خاصی بارگذاری شوند و این گزینه به گونه‌ای استفاده شود که بخش‌ها در آدرس متفاوتی بارگذاری شوند، ممکن است اجرای برنامه با شکست مواجه شود. .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 بخش‌ها در یک باینری کاملاً پیوندخورده می‌تواند خطرناک باشد، زیرا ممکن است کدهایی وجود داشته باشند که انتظار دارند بخش‌ها در آدرس قبلی خود قرار داشته باشند. .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 است با این تفاوت که یک فایل قالب‌بندی‌شده ایجاد نمی‌کند، بلکه صرفاً محتویات را به عنوان داده خام باینری و بدون اعمال هیچ‌گونه بازتخصیص ذخیره می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. .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، نگاشت بخش به سگمنت نیز بدون تغییر باقی می‌ماند، چیزی که با استفاده از \fB\-\-remove\-section\fR و سپس \fB\-\-add\-section\fR امکان‌پذیر نیست. این گزینه می‌تواند بیش از یک بار مشخص شود. .Sp نکته \- می‌توان از \fB\-\-rename\-section\fR و \fB\-\-update\-section\fR برای به‌روزرسانی و تغییر نام همزمان یک بخش در یک خط فرمان استفاده کرد. در این حالت، نام بخش اصلی را به \fB\-\-update\-section\fR و نام‌های اصلی و جدید بخش را به \fB\-\-rename\-section\fR ارسال کنید. .IP "\fB\-\-add\-symbol\fR \fIname\fR\fB=[\fR\fIsection\fR\fB:]\fR\fIvalue\fR\fB[,\fR\fIflags\fR\fB]\fR" 4 .IX Item "--add-symbol name=[section:]value[,flags]" هنگام کپی فایل، نماد جدیدی به نام \fIname\fR اضافه می‌کند. این گزینه می‌تواند چندین بار مشخص شود. اگر \fIsection\fR داده شود، نماد با آن بخش مرتبط و نسبت به آن خواهد بود، در غیر این صورت یک نماد ABS خواهد بود. مشخص کردن یک بخش تعریف‌نشده منجر به خطای مهلک می‌شود. هیچ بررسی روی مقدار انجام نمی‌شود و همان‌طور که مشخص شده در نظر گرفته می‌شود. پرچم‌های نماد می‌توانند مشخص شوند و همه پرچم‌ها برای تمام فرمت‌های فایل شیء معنادار نخواهند بود. به‌طور پیش‌فرض، نماد سراسری خواهد بود. پرچم ویژه \*(Aqbefore=\fIothersym\fR\*(Aq نماد جدید را قبل از \fIothersym\fR مشخص‌شده درج می‌کند، در غیر این صورت نماد(ها) به انتهای جدول نمادها به همان ترتیبی که ظاهر شده‌اند افزوده می‌شوند. .IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4 .IX Item "--rename-section oldname=newname[,flags]" یک بخش را از \fIoldname\fR به \fInewname\fR تغییر نام می‌دهد و به صورت اختیاری پرچم‌های بخش را در طول این فرایند به \fIflags\fR تغییر می‌دهد. این روش نسبت به استفاده از اسکریپت پیونددهنده برای تغییر نام این مزیت را دارد که خروجی به صورت فایل شیء باقی می‌ماند و به فایل اجرایی پیوندخورده تبدیل نمی‌شود. این گزینه همان مجموعه پرچم‌های گزینه \fB\-\-set\-section\-flags\fR را می‌پذیرد. .Sp این گزینه به‌ویژه زمانی مفید است که فرمت ورودی باینری باشد، زیرا این فرمت همیشه بخشی به نام .data ایجاد می‌کند. اگر به عنوان مثال، می‌خواهید به جای آن بخشی به نام .rodata حاوی داده‌های باینری ایجاد کنید، می‌توانید از خط فرمان زیر برای دستیابی به آن استفاده کنید: .Sp .Vb 3 \& objcopy \-I binary \-O \-B \e \& \-\-rename\-section .data=.rodata,alloc,load,readonly,data,contents \e \& .Ve .IP "\fB\-\-long\-section\-names {enable,disable,keep}\fR" 4 .IX Item "--long-section-names {enable,disable,keep}" نحوه مدیریت نام‌های طولانی بخش‌ها را هنگام پردازش فرمت‌های شیء \f(CW\*(C`COFF\*(C'\fR و \f(CW\*(C`PE\-COFF\*(C'\fR کنترل می‌کند. رفتار پیش‌فرض، \fBkeep\fR، حفظ نام‌های طولانی بخش‌ها در صورت وجود در فایل ورودی است. گزینه‌های \fBenable\fR و \fBdisable\fR استفاده از نام‌های طولانی بخش‌ها را در شیء خروجی به اجبار فعال یا غیرفعال می‌کنند؛ هنگامی که \fBdisable\fR اعمال شود، هر نام طولانی بخش در شیء ورودی کوتاه (truncate) خواهد شد. گزینه \fBenable\fR تنها در صورتی نام‌های طولانی بخش را منتشر می‌کند که در ورودی‌ها وجود داشته باشند؛ این رفتار عمدتاً شبیه به \fBkeep\fR است، اما اینکه آیا گزینه \fBenable\fR ممکن است ایجاد یک جدول رشته خالی را در فایل خروجی تحمیل کند یا خیر، تعریف‌نشده باقی مانده است. .IP \fB\-\-change\-leading\-char\fR 4 .IX Item "--change-leading-char" برخی از فرمت‌های فایل شیء از کاراکترهای خاص در ابتدای نمادها استفاده می‌کنند. متداول‌ترین کاراکتر از این دست، خط زیر (underscore) است که کامپایلرها معمولاً قبل از هر نماد اضافه می‌کنند. این گزینه به \fBobjcopy\fR می‌گوید که هنگام تبدیل بین فرمت‌های فایل شیء، کاراکتر آغازین هر نماد را تغییر دهد. اگر فرمت‌های فایل شیء از همان کاراکتر آغازین استفاده کنند، این گزینه هیچ اثری ندارد. در غیر این صورت، بر حسب مورد، کاراکتری را اضافه، حذف یا تغییر می‌دهد. .IP \fB\-\-remove\-leading\-char\fR 4 .IX Item "--remove-leading-char" اگر اولین کاراکتر یک نماد سراسری، کاراکتر آغازین نماد ویژه مورد استفاده توسط فرمت فایل شیء باشد، آن کاراکتر را حذف می‌کند. متداول‌ترین کاراکتر آغازین نماد، خط زیر (underscore) است. این گزینه یک خط زیر آغازین را از تمام نمادهای سراسری حذف می‌کند. این گزینه زمانی می‌تواند مفید باشد که بخواهید اشیایی با فرمت‌های فایلی مختلف را که قراردادهای متفاوتی برای نام‌گذاری نمادها دارند به یکدیگر پیوند دهید. این گزینه با \fB\-\-change\-leading\-char\fR تفاوت دارد زیرا بدون توجه به فرمت فایل شیء فایل خروجی، همیشه نام نماد را در صورت لزوم تغییر می‌دهد. .IP \fB\-\-reverse\-bytes=\fR\fInum\fR 4 .IX Item "--reverse-bytes=num" بایت‌ها را در بخشی با محتویات خروجی معکوس می‌کند. طول بخش باید بر مقدار داده‌شده بخش‌پذیر باشد تا امکان جابجایی وجود داشته باشد. معکوس‌سازی قبل از انجام درهم‌آمیزی انجام می‌شود. .Sp این گزینه معمولاً در تولید ایمیج‌های ROM برای سیستم‌های مقصد خاص استفاده می‌شود. به عنوان مثال، در برخی از بردهای مقصد، کلمات ۳۲ بیتی واکشی‌شده از ROMهای ۸ بیتی بدون در نظر گرفتن ترتیب بایت پردازنده، با ترتیب بایت little\-endian سرهم‌بندی می‌شوند. بسته به مدل برنامه‌نویسی، ممکن است نیاز به اصلاح ترتیب بایت‌های ROM باشد. .Sp یک فایل ساده با بخشی شامل این هشت بایت را در نظر بگیرید: \f(CW12345678\fR. .Sp با استفاده از \fB\-\-reverse\-bytes=2\fR برای مثال فوق، بایت‌ها در فایل خروجی به صورت \f(CW21436587\fR مرتب خواهند شد. .Sp با استفاده از \fB\-\-reverse\-bytes=4\fR برای مثال فوق، بایت‌ها در فایل خروجی به صورت \f(CW43218765\fR مرتب خواهند شد. .Sp با استفاده از \fB\-\-reverse\-bytes=2\fR برای مثال بالا و به دنبال آن \fB\-\-reverse\-bytes=4\fR روی فایل خروجی، بایت‌ها در فایل خروجی دوم به صورت \f(CW34127856\fR مرتب خواهند شد. .IP \fB\-\-srec\-len=\fR\fIival\fR 4 .IX Item "--srec-len=ival" تنها برای خروجی srec معنادار است. حداکثر طول Srecordهای تولیدشده را روی \fIival\fR تنظیم می‌کند. این طول فیلدهای آدرس، داده و crc را پوشش می‌دهد. .IP \fB\-\-srec\-forceS3\fR 4 .IX Item "--srec-forceS3" تنها برای خروجی srec معنادار است. از تولید رکوردهای S1/S2 جلوگیری کرده و فرمت رکوردی فقط S3 ایجاد می‌کند. .IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4 .IX Item "--redefine-sym old=new" نام نماد \fIold\fR را به \fInew\fR تغییر می‌دهد. این می‌تواند زمانی مفید باشد که قصد دارید دو مورد را که سورس‌کد آن‌ها را ندارید و تداخل نام دارند به یکدیگر پیوند دهید. .IP \fB\-\-redefine\-syms=\fR\fIfilename\fR 4 .IX Item "--redefine-syms=filename" گزینه \fB\-\-redefine\-sym\fR را برای هر جفت نماد "\fIold\fR \fInew\fR" فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \&\fIfilename\fR یک فایل متنی ساده با یک جفت نماد در هر خط است. توضیحات خطی می‌توانند با کاراکتر هش (#) آغاز شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-weaken\fR 4 .IX Item "--weaken" تمام نمادهای سراسری موجود در فایل را به ضعیف (weak) تبدیل می‌کند. این گزینه می‌تواند هنگام ساخت شیئی که قرار است با استفاده از گزینه \fB\-R\fR پیونددهنده به اشیاء دیگر پیوند داده شود، مفید باشد. این گزینه تنها زمانی مؤثر است که از یک فرمت فایل شیء که از نمادهای ضعیف پشتیبانی می‌کند استفاده شود. .IP \fB\-\-keep\-symbols=\fR\fIfilename\fR 4 .IX Item "--keep-symbols=filename" گزینه \fB\-\-keep\-symbol\fR را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \&\fIfilename\fR یک فایل متنی ساده با یک نام نماد در هر خط است. توضیحات خطی می‌توانند با کاراکتر هش آغاز شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-strip\-symbols=\fR\fIfilename\fR 4 .IX Item "--strip-symbols=filename" گزینه \fB\-\-strip\-symbol\fR را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \&\fIfilename\fR یک فایل متنی ساده با یک نام نماد در هر خط است. توضیحات خطی می‌توانند با کاراکتر هش آغاز شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR 4 .IX Item "--strip-unneeded-symbols=filename" گزینه \fB\-\-strip\-unneeded\-symbol\fR را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \&\fIfilename\fR یک فایل متنی ساده با یک نام نماد در هر خط است. توضیحات خطی می‌توانند با کاراکتر هش آغاز شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-keep\-global\-symbols=\fR\fIfilename\fR 4 .IX Item "--keep-global-symbols=filename" گزینه \fB\-\-keep\-global\-symbol\fR را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \&\fIfilename\fR یک فایل متنی ساده با یک نام نماد در هر خط است. توضیحات خطی می‌توانند با کاراکتر هش آغاز شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-localize\-symbols=\fR\fIfilename\fR 4 .IX Item "--localize-symbols=filename" گزینه \fB\-\-localize\-symbol\fR را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \&\fIfilename\fR یک فایل متنی ساده با یک نام نماد در هر خط است. توضیحات خطی می‌توانند با کاراکتر هش آغاز شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-globalize\-symbols=\fR\fIfilename\fR 4 .IX Item "--globalize-symbols=filename" گزینه \fB\-\-globalize\-symbol\fR را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \&\fIfilename\fR یک فایل متنی ساده با یک نام نماد در هر خط است. توضیحات خطی می‌توانند با کاراکتر هش آغاز شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. نکته: این گزینه نمی‌تواند همراه با گزینه‌های \fB\-G\fR یا \fB\-\-keep\-global\-symbol\fR استفاده شود. .IP \fB\-\-weaken\-symbols=\fR\fIfilename\fR 4 .IX Item "--weaken-symbols=filename" گزینه \fB\-\-weaken\-symbol\fR را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \&\fIfilename\fR یک فایل متنی ساده با یک نام نماد در هر خط است. توضیحات خطی می‌توانند با کاراکتر هش آغاز شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-alt\-machine\-code=\fR\fIindex\fR 4 .IX Item "--alt-machine-code=index" اگر معماری خروجی کدهای ماشین جایگزین داشته باشد، به جای کد پیش‌فرض از کد \fIindex\fRام استفاده می‌کند. این مورد زمانی کاربرد دارد که یک کد رسمی به ماشین اختصاص داده شود و زنجیره ابزار کد جدید را اتخاذ کند، اما سایر برنامه‌ها همچنان به استفاده از کد اصلی وابسته باشند. برای معماری‌های مبتنی بر ELF اگر جایگزین \fIindex\fR وجود نداشته باشد، مقدار به عنوان یک عدد مطلق برای ذخیره در فیلد e_machine از هدر ELF در نظر گرفته می‌شود. .IP \fB\-\-writable\-text\fR 4 .IX Item "--writable-text" بخش متن (text) خروجی را به عنوان قابل نوشتن علامت‌گذاری می‌کند. این گزینه برای تمام فرمت‌های فایل شیء معنادار نیست. .IP \fB\-\-readonly\-text\fR 4 .IX Item "--readonly-text" بخش متن خروجی را محافظت‌شده در برابر نوشتن (فقط‌خواندنی) می‌کند. این گزینه برای تمام فرمت‌های فایل شیء معنادار نیست. .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 sections) را در خروجی حفظ می‌کند. .Sp نکته \- هدرهای بخش‌های پاک‌سازی‌شده، از جمله اندازه آن‌ها، حفظ می‌شوند اما محتویات بخش‌ها دور ریخته می‌شوند. هدرهای بخش حفظ می‌شوند تا سایر ابزارها بتوانند فایل debuginfo را با فایل اجرایی واقعی تطبیق دهند، حتی اگر آن فایل اجرایی به فضای آدرس متفاوتی جابه‌جا شده باشد. .Sp هدف این است که از این گزینه در ترکیب با \fB\-\-add\-gnu\-debuglink\fR برای ایجاد یک فایل اجرایی دو بخشی استفاده شود: یکی یک باینری پاک‌سازی‌شده (stripped) که فضای کمتری در 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 را برای ایجاد یک فایل اجرایی پاک‌سازی‌شده اجرا کنید. .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 نکته\-\-\-این سوییچ فقط برای استفاده روی فایل‌های کاملاً پیوندخورده در نظر گرفته شده است. استفاده از آن روی فایل‌های شیء که ممکن است اطلاعات اشکال‌زدایی در آن‌ها ناقص باشد، بی‌معنی است. علاوه بر این، قابلیت 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" تراز فایل را مشخص می‌کند. بخش‌ها در فایل همیشه از آفست‌های فایلی شروع می‌شوند که مضربی از این عدد هستند. مقدار پیش‌فرض ۵۱۲ است. [این گزینه مختص مقصدهای 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 تعداد بایت‌های حافظه را برای رزرو کردن (و اختیاری متعهد کردن) جهت استفاده به عنوان پشته (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 \(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 از ABI مربوط به ELF فشرده می‌کند. نکته \- اگر فشرده‌سازی در واقع باعث \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، این گزینه تعداد بایت‌های تبدیل‌شده برای هر عنصر داده خروجی را کنترل می‌کند. مقصد ورودی، ترتیب بایت‌ها در تبدیل را کنترل می‌کند. .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) ۱۹۹۱\-۲۰۲۶ بنیاد نرم‌افزار آزاد (Free Software Foundation, Inc.) .PP مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخه ۱.۳ یا هر نسخه جدیدتر منتشر شده توسط بنیاد نرم‌افزار آزاد اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متن‌های جلد رویی و بدون متن‌های جلد پشتی. نسخه‌ای از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.