." -*- 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-11 binutils-2.47 "GNU Development Tools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" objcopy \- کپی و تغییر قالب فایلهای باینری و شیء (Object Files) .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)" ابزار .B objcopy در گنو، محتویات یک فایل شیء (Object File) را درون فایلی دیگر کپی می‌کند. .B objcopy برای خواندن و نوشتن فایل‌های شیء از کتابخانه BFD گنو (GNU BFD Library) بهره می‌برد و می‌تواند فایل شیء مقصد را در قالبی متفاوت از فایل شیء مبدأ بنویسد. رفتار دقیق .B objcopy توسط گزینه‌های خط فرمان کنترل می‌شود. توجه داشته باشید که .B objcopy باید بتواند فایلی را که پیوند کامل خورده است (Fully Linked) بین هر دو قالب دلخواه کپی کند؛ با این حال، کپی کردن یک فایل شیء قابل‌بازنشانی (Relocatable) میان دو قالب گوناگون ممکن است آن‌طور که انتظار می‌رود عمل نکند. .PP دستور .B objcopy برای انجام تبدیلات خود فایل‌های موقتی می‌سازد و پس از پایان کار آن‌ها را حذف می‌کند. .B objcopy تمام کارهای تبدیل خود را با کتابخانه BFD انجام می‌دهد؛ بنابراین به کلیه قالب‌های تعریف‌شده در BFD دسترسی دارد و می‌تواند بیشتر قالب‌ها را بدون نیاز به معرفی صریح و خودکار شناسایی کند. .PP می‌توان از .B objcopy برای تولید رکوردهای اس (S-records) استفاده کرد؛ برای این کار کافی است هدف خروجی روی .B srec تنظیم شود (مانند .BR \-O\ srec ). .PP از .B objcopy می‌توان برای ایجاد یک فایل باینری خام با تعیین هدف خروجی روی .B binary استفاده کرد (مانند .BR \-O\ binary ). هنگامی که .B objcopy یک فایل باینری خام تولید می‌کند، در عمل یک رونوشت حافظه (Memory Dump) از محتویات فایل شیء ورودی به دست می‌دهد. در این حالت کلیه نمادها و اطلاعات بازنشانی دور ریخته می‌شوند و تخلیه حافظه از آدرس بارگذاری پایین‌ترین بخشی که در فایل خروجی کپی می‌شود آغاز خواهد شد. .PP هنگام تولید رکورد اس یا فایل باینری خام، استفاده از گزینه .B \-S برای حذف بخش‌های حاوی اطلاعات اشکال‌زدایی سودمند خواهد بود. در برخی موارد نیز گزینه .B \-R برای حذف بخش‌هایی که اطلاعات آن‌ها در فایل باینری مورد نیاز نیست مفید واقع می‌شود. .PP نکته: .B objcopy قادر به تغییر ترتیب بایت‌ها (Endianness) در فایل‌های ورودی نیست. اگر قالب ورودی دارای ترتیب بایت باشد (برخی قالب‌ها فاقد آن هستند)، .B objcopy تنها می‌تواند ورودی‌ها را در قالب‌هایی کپی کند که همان ترتیب بایت را دارند یا اساساً فاقد ترتیب بایت هستند (مانند .BR srec ). (البته به گزینه .B \-\-reverse\-bytes مراجعه کنید). .SH "گزینه‌ها (OPTIONS)" .IX Header "گزینه‌ها (OPTIONS)" .IP \fIinfile\fR 4 .IX Item "infile" .PD 0 .IP \fIoutfile\fR 4 .IX Item "outfile" .PD به‌ترتیب فایل‌های ورودی و خروجی. اگر \fIoutfile\fR را مشخص نکنید، .B objcopy یک فایل موقت می‌سازد و نتیجه را به شکلی مخرب با همان نام \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 تنظیم می‌شود. اگر فایل ورودی خود معماری شناخته‌شده‌ای داشته باشد، این گزینه نادیده گرفته خواهد شد. درون یک برنامه می‌توان با ارجاع به نمادهای ویژه‌ای که در این فرآیند تبدیل ساخته می‌شوند، به این داده‌های باینری دسترسی پیدا کرد. این نمادها به نام‌های _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 علامت تعجب (!) باشد، بخش‌های منطبق کپی نخواهند شد، حتی اگر کاربرد قبلی .B \-\-only\-section در همان خط فرمان خلاف آن را نشان دهد. برای نمونه: .Sp .Vb 1 \& \-\-only\-section=.text.* \-\-only\-section=!.text.foo .Ve .Sp کلیه بخش‌های منطبق با '.text.*' را کپی خواهد کرد، اما بخش '.text.foo' را کپی نمی‌کند. .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 پذیرفته می‌شوند. استفاده هم‌زمان از گزینه‌های .B \-j و .B \-R رفتار تعریف‌نشده‌ای به دنبال دارد. .Sp اگر نخستین نویسه \fIsectionpattern\fR علامت تعجب (!) باشد، بخش‌های منطبق حذف نخواهند شد، حتی اگر در کاربرد قبلی .B \-\-remove\-section در همان خط فرمان دستور حذف آن‌ها داده شده باشد. برای نمونه: .Sp .Vb 1 \& \-\-remove\-section=.text.* \-\-remove\-section=!.text.foo .Ve .Sp تمام بخش‌های منطبق با الگوی '.text.*' را حذف می‌کند، اما بخش '.text.foo' را نگه می‌دارد و حذف نخواهد کرد. .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 مطابقت دارد از فایل خروجی حذف می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید استفاده نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند؛ همچنین تلاش برای حذف بخش‌های بازنشانی پویا مانند .B .rela.plt از یک فایل اجرایی یا کتابخانه مشترک با دستور .B \-\-remove\-relocations=.plt کار نخواهد کرد. نویسه‌های عامه‌نما در \fIsectionpattern\fR پذیرفته می‌شوند. برای نمونه: .Sp .Vb 1 \& \-\-remove\-relocations=.text.* .Ve .Sp بازنشانی‌های مربوط به تمام بخش‌های منطبق با الگوی '.text.*' را حذف می‌کند. .Sp اگر نخستین نویسه \fIsectionpattern\fR علامت تعجب (!) باشد، بازنشانی‌های بخش‌های منطبق حذف نخواهند شد، حتی اگر در کاربرد قبلی .B \-\-remove\-relocations در همان خط فرمان دستور حذف آن‌ها صادر شده باشد. برای نمونه: .Sp .Vb 1 \& \-\-remove\-relocations=.text.* \-\-remove\-relocations=!.text.foo .Ve .Sp بازنشانی‌های بخش‌های منطبق با الگوی '.text.*' را حذف می‌کند، اما بازنشانی‌های بخش '.text.foo' را دست‌نخورده نگه می‌دارد. .IP \fB\-\-strip\-section\-headers\fR 4 .IX Item "--strip-section-headers" جدول هدر بخش‌ها (Section Headers) را حذف می‌کند. این گزینه ویژه فایل‌های ELF است و به‌طور خودکار گزینه‌های .B \-\-strip\-all و .B \-\-merge\-notes را نیز اعمال می‌نماید. .IP \fB\-S\fR 4 .IX Item "-S" .PD 0 .IP \fB\-\-strip\-all\fR 4 .IX Item "--strip-all" .PD اطلاعات بازنشانی و نمادها را از فایل مبدأ کپی نمی‌کند. همچنین بخش‌های اشکال‌زدایی را نیز حذف می‌نماید. .IP \fB\-g\fR 4 .IX Item "-g" .PD 0 .IP \fB\-\-strip\-debug\fR 4 .IX Item "--strip-debug" .PD نمادها و بخش‌های اشکال‌زدایی را از فایل مبدأ کپی نمی‌کند. .IP \fB\-\-strip\-unneeded\fR 4 .IX Item "--strip-unneeded" علاوه بر نمادها و بخش‌های اشکال‌زدایی که با .B \-\-strip\-debug حذف می‌شوند، کلیه نمادهایی را که برای پردازش بازنشانی‌ها ضروری نیستند نیز حذف می‌کند. .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) می‌کند تا از بیرون قابل مشاهده نباشند. این گزینه می‌تواند بیش از یک بار به کار رود. نکته: این گزینه را نمی‌توان هم‌زمان با گزینه‌های .B \-\-globalize\-symbol یا .B \-\-globalize\-symbols استفاده کرد. .IP \fB\-\-localize\-hidden\fR 4 .IX Item "--localize-hidden" در شیء ELF، تمام نمادهایی را که سطح دید پنهان (Hidden) یا داخلی (Internal) دارند به‌عنوان محلی علامت‌گذاری می‌کند. این گزینه مکمل گزینه‌های محلی‌سازی نمادهای خاص مانند .B \-L است. .IP "\fB\-L\fR \fIsymbolname\fR" 4 .IX Item "-L symbolname" .PD 0 .IP \fB\-\-localize\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--localize-symbol=symbolname" .PD یک نماد سراسری یا ضعیف با نام \fIsymbolname\fR را به یک نماد محلی تبدیل می‌کند تا از بیرون فایل قابل مشاهده نباشد. این گزینه می‌تواند بیش از یک بار به کار رود. نکته: نمادهای یکتا (Unique symbols) تبدیل نمی‌شوند. .IP "\fB\-W\fR \fIsymbolname\fR" 4 .IX Item "-W symbolname" .PD 0 .IP \fB\-\-weaken\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--weaken-symbol=symbolname" .PD نماد \fIsymbolname\fR را ضعیف (Weak) می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-binary\-symbol\-prefix=\fR\fIstring\fR 4 .IX Item "--binary-symbol-prefix=string" هنگام استفاده همراه با .BR \-\-input\-target=binary ، مقدار \fIstring\fR را به‌عنوان نام پایه نمادهای ایجادشده برای فایل ورودی تعیین می‌کند. این نمادها عبارت‌اند از: .Sp .Vb 3 \& _start \& _end \& _size .Ve .Sp به‌طور پیش‌فرض، گرداننده ورودی باینری نام پیشوند نماد را از ترکیب پیشوند _binary و نگارش تغییر‌یافته نام فایل ورودی به دست می‌آورد. این گزینه امکان مشخص کردن صریح آن را فراهم می‌کند. .IP \fB\-\-globalize\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--globalize-symbol=symbolname" حوزه دید نماد \fIsymbolname\fR را سراسری می‌کند تا در خارج از فایلی که در آن تعریف شده است نیز قابل مشاهده باشد. این گزینه می‌تواند بیش از یک بار به کار رود. نکته: این گزینه را نمی‌توان هم‌زمان با گزینه‌های .B \-G یا .B \-\-keep\-global\-symbol به کار برد. .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 باعث می‌شود .B objcopy تمام نمادهایی را که با "fo" شروع می‌شوند، به جز نماد "foo"، ضعیف (Weaken) کند. .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 نمادهای محلی تولیدشده توسط کامپایلر را کپی نمی‌کند (این نمادها معمولاً با .B L یا .B . آغاز می‌شوند). .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) از طریق گزینه .B \-\-interleave فعال شده باشد، بازه بایت‌های نگه‌داشته‌شده را از بایت شماره \fIbyte\fR آغاز می‌کند. مقدار \fIbyte\fR می‌تواند در بازه 0 تا \fIbreadth\fR\-1 باشد که \fIbreadth\fR مقدار تعیین‌شده در گزینه .B \-\-interleave است. .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 بایت، تنها یک بازه مشخص را کپی می‌کند (داده‌های هدر تحت تأثیر قرار نمی‌گیرند). اینکه کپی از کدام بایت درون بازه شروع شود با گزینه .B \-\-byte و پهنای بازه با گزینه .B \-\-interleave\-width تعیین می‌شود. .Sp این گزینه برای ایجاد فایل‌های مخصوص برنامه‌ریزی رام (ROM) مفید است و معمولاً همراه با هدف خروجی .B srec به کار می‌رود. توجه داشته باشید اگر گزینه .B \-\-byte را مشخص نکنید، .B objcopy خطا صادر خواهد کرد. .Sp عرض پیش‌فرض درهم‌تنی 4 است؛ بنابراین اگر .B \-\-byte روی 0 تنظیم شود، .B objcopy از هر چهار بایت ورودی، اولین بایت را در خروجی کپی می‌کند. .IP \fB\-\-interleave\-width=\fR\fIwidth\fR 4 .IX Item "--interleave-width=width" هنگام استفاده با گزینه .BR \-\-interleave ، در هر گام \fIwidth\fR بایت را کپی می‌کند. نقطه شروع بازه بایت‌های مورد نظر با گزینه .B \-\-byte و اندازه کل گام با گزینه .B \-\-interleave مشخص می‌شود. .Sp مقدار پیش‌فرض این گزینه 1 است. حاصل‌جمع \fIwidth\fR و مقدار \fIbyte\fR تعیین‌شده در گزینه .B \-\-byte نباید از عرض درهم‌تنی مشخص‌شده در گزینه .B \-\-interleave فراتر رود. .Sp از این گزینه می‌توان برای ایجاد ایمیج جهت دو فلش ۱۶ بیتی که در یک باس ۳۲ بیتی به‌صورت درهم‌تنیده قرار دارند استفاده کرد؛ این کار با ارسال .B \-b 0 \-i 4 \-\-interleave\-width=2 و .B \-b 2 \-i 4 \-\-interleave\-width=2 به دو دستور .B objcopy انجام می‌شود. اگر ورودی '12345678' باشد، خروجی‌ها به‌ترتیب '1256' و '3478' خواهند بود. .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 فعال‌سازی حالت قطعی (Deterministic). هنگام کپی کردن اعضای آرشیو و نوشتن شاخص آرشیو، برای شناسه‌های UID، GID و مهرهای زمانی مقدار صفر ثبت می‌شود و حالت‌های دسترسی فایل‌ها برای تمام موارد یکسان خواهد بود. .Sp اگر \fIbinutils\fR با سوییچ .B \-\-enable\-deterministic\-archives پیکربندی شده باشد، این حالت به‌صورت پیش‌فرض فعال است. با گزینه .B \-U در زیر می‌توان آن را غیرفعال کرد. .IP \fB\-U\fR 4 .IX Item "-U" .PD 0 .IP \fB\-\-disable\-deterministic\-archives\fR 4 .IX Item "--disable-deterministic-archives" .PD عدم استفاده از حالت قطعی. این حالت معکوس گزینه .B \-D در بالا است؛ به این صورت که هنگام کپی اعضای آرشیو و نوشتن شاخص آن، مقادیر واقعی UID، GID، مهر زمانی و مجوزهای فایل درج می‌شوند. .Sp این رفتار پیش‌فرض است، مگر آنکه \fIbinutils\fR با .B \-\-enable\-deterministic\-archives پیکربندی شده باشد. .IP \fB\-\-debugging\fR 4 .IX Item "--debugging" در صورت امکان اطلاعات اشکال‌زدایی را تبدیل می‌کند. این رفتار پیش‌فرض نیست؛ زیرا تنها فرمت‌های خاصی از دیباگ پشتیبانی می‌شوند و فرآیند تبدیل می‌تواند زمان‌بر باشد. .IP "\fB\-\-gap\-fill\fR \fIval\fR" 4 .IX Item "--gap-fill val" شکاف‌های خالی میان بخش‌ها را با مقدار \fIval\fR پر می‌کند. این عملیات روی آدرس بارگذاری (LMA) بخش‌ها اعمال می‌شود؛ بدین‌ترتیب که اندازه بخشی که در آدرس پایین‌تر قرار دارد افزایش یافته و فضای اضافی پدیدآمده با \fIval\fR پر می‌شود. .IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4 .IX Item "--pad-to address" فایل خروجی را تا رسیدن به آدرس بارگذاری \fIaddress\fR با داده‌های خالی پر (Pad) می‌کند. این کار با افزایش اندازه آخرین بخش صورت می‌پذیرد و فضای اضافی با مقدار تعیین‌شده در گزینه .B \-\-gap\-fill (پیش‌فرض: صفر) پر می‌شود. .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 مطابقت دارد تنظیم یا تغییر می‌دهد. اگر از .B = استفاده شود، آدرس بخش مستقیماً روی \fIval\fR تنظیم می‌شود؛ در غیر این صورت، مقدار \fIval\fR به آدرس بخش افزوده یا از آن کاسته خواهد شد. به توضیحات ذکرشده ذیل گزینه .B \-\-change\-addresses مراجعه کنید. چنانچه \fIsectionpattern\fR با هیچ‌یک از بخش‌های فایل ورودی مطابقت نداشته باشد، هشداری صادر خواهد شد مگر آنکه از .B \-\-no\-change\-warnings استفاده شود. .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 نگه‌داری می‌شود، این دو آدرس با یکدیگر تفاوت دارند. اگر علامت .B = به کار رود، آدرس بخش برابر با \fIval\fR قرار می‌گیرد؛ در غیر این صورت مقدار \fIval\fR به آدرس اضافه یا از آن کم می‌شود. توضیحات ذکرشده ذیل .B \-\-change\-addresses را ببینید. اگر \fIsectionpattern\fR با بخشی منطبق نشود، هشدار داده خواهد شد مگر آنکه .B \-\-no\-change\-warnings تعیین شده باشد. .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 قرار دارد، می‌تواند متفاوت باشد. اگر از .B = استفاده شود، آدرس بخش روی \fIval\fR تنظیم می‌گردد؛ در غیر این صورت، مقدار \fIval\fR به آن اضافه یا از آن کم می‌شود. به توضیحات زیر .B \-\-change\-addresses مراجعه کنید. چنانچه \fIsectionpattern\fR با بخشی منطبق نشود، هشدار صادر می‌شود مگر اینکه گزینه .B \-\-no\-change\-warnings وارد شده باشد. .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 اگر گزینه‌های .BR \-\-change\-section\-address ، .B \-\-change\-section\-lma یا .B \-\-change\-section\-vma به کار روند و الگوی بخش با هیچ بخشی منطبق نشود، هشدار صادر شود. این حالت پیش‌فرض است. .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 در صورت استفاده از .BR \-\-change\-section\-address ، .B \-\-adjust\-section\-lma یا .BR \-\-adjust\-section\-vma ، حتی اگر الگوی بخش با هیچ بخشی منطبق نشود، هشداری صادر نشود. .IP "\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR\fB=\fR\fIflags\fR" 4 .IX Item "--set-section-flags sectionpattern=flags" فلگ‌های هر بخشی را که با \fIsectionpattern\fR مطابقت دارد تنظیم می‌کند. آرگومان \fIflags\fR رشته‌ای از نام‌های فلگ است که با کاما از یکدیگر جدا شده‌اند. نام‌های شناخته‌شده عبارت‌اند از: .BR alloc ، .BR contents ، .BR load ، .BR noload ، .BR readonly ، .BR code ، .BR data ، .BR rom ، .BR exclude ، .BR share ، .B debug و .BR large . می‌توانید فلگ .B contents را برای بخشی که فاقد محتوا است تعیین کنید، اما پاک کردن فلگ .B contents از بخشی که محتوا دارد بی‌معنی است؛ در چنین شرایطی بهتر است بخش را به‌کلی حذف کنید. تمام فلگ‌ها در همه قالب‌های فایل شیء معنادار نیستند؛ به‌طور ویژه فلگ .B share صرفاً برای فایل‌های قالب COFF معنی دارد و در قالب‌های ELF کاربردی ندارد. فلگ اختصاصی .B large در 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 آن را تراز نمی‌کند. در صورتی که نیاز به تغییر آن‌ها نیز باشد، باید از گزینه‌های .B \-\-change\-section\-lma یا .B \-\-change\-section\-vma استفاده شود. همچنین به یاد داشته باشید که تغییر VMA می‌تواند در باینری‌های کاملاً پیوندخورده اشکال ایجاد کند، زیرا ممکن است بخش‌هایی از کد به آدرس‌های قبلی وابسته باشند. .IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 .IX Item "--add-section sectionname=filename" هنگام کپی فایل، بخش جدیدی به نام \fIsectionname\fR می‌افزاید. محتوای این بخش جدید از فایل \fIfilename\fR خوانده می‌شود و اندازه بخش برابر با اندازه فایل خواهد بود. این گزینه تنها در قالب‌هایی کار می‌کند که از بخش‌هایی با نام‌های دلخواه پشتیبانی می‌نمایند. نکته: ممکن است نیاز باشد با استفاده از گزینه .B \-\-set\-section\-flags ویژگی‌ها و فلگ‌های بخش جدید ساخته‌شده را تعیین کنید. .IP "\fB\-\-dump\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 .IX Item "--dump-section sectionname=filename" محتوای بخش \fIsectionname\fR را درون فایل \fIfilename\fR ذخیره کرده و هر داده‌ای را که از قبل در آن فایل بوده بازنویسی می‌کند. این گزینه عملکردی معکوس .B \-\-add\-section دارد و مشابه گزینه .B \-\-only\-section است، با این تفاوت که فایل فرمت‌بندی‌شده نمی‌سازد، بلکه داده‌ها را به‌صورت باینری خام و بدون اعمال هیچ‌گونه بازنشانی تخلیه (Dump) می‌کند. این گزینه می‌تواند چندین بار مشخص شود. .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) نیز دست‌نخورده باقی می‌ماند؛ امری که با استفاده از .B \-\-remove\-section و به دنبال آن .B \-\-add\-section امکان‌پذیر نیست. این گزینه می‌تواند بیش از یک بار درج شود. .Sp نکته: می‌توان هم‌زمان از .B \-\-rename\-section و .B \-\-update\-section در یک خط فرمان برای به‌روزرسانی محتوا و تغییر نام بخش بهره گرفت. در این شرایط، نام اصلی بخش را به .B \-\-update\-section و نام‌های اصلی و جدید را به .B \-\-rename\-section بسپارید. .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) خواهد بود. مشخص کردن یک بخش تعریف‌نشده منجر به خطای مهلک می‌شود. هیچ بررسی خاصی روی مقدار صورت نمی‌گیرد و مقدار دقیقاً همان‌طور که وارد شده پذیرفته خواهد شد. فلگ‌های نماد قابل تعیین هستند، اگرچه همه فلگ‌ها برای کلیه قالب‌های فایل شیء معنادار نیستند. نماد به‌طور پیش‌فرض سراسری خواهد بود. فلگ ویژه 'before=\fIothersym\fR' نماد جدید را درست پیش از نماد مشخص‌شده \fIothersym\fR درج می‌کند؛ در غیر این صورت نمادها به ترتیب حضور در خط فرمان، به انتهای جدول نمادها افزوده خواهند شد. .IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4 .IX Item "--rename-section oldname=newname[,flags]" نام بخشی را از \fIoldname\fR به \fInewname\fR تغییر می‌دهد و در صورت تمایل، فلگ‌های بخش را نیز در این فرآیند به \fIflags\fR تبدیل می‌کند. برتری این روش نسبت به استفاده از اسکریپت پیونددهنده (Linker Script) در این است که خروجی همچنان یک فایل شیء باقی می‌ماند و به یک فایل اجرایی پیوندخورده تبدیل نمی‌شود. این گزینه همان فلگ‌های قابل قبول در گزینه .B \-\-set\-section\-flags را می‌پذیرد. .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}" نحوه مدیریت نام‌های طولانی بخش‌ها را هنگام پردازش قالب‌های شیء COFF و PE-COFF کنترل می‌کند. رفتار پیش‌فرض یعنی .BR keep ، نام‌های طولانی موجود در فایل ورودی را حفظ می‌کند. گزینه‌های .B enable و .B disable استفاده از نام‌های طولانی را در شیء خروجی به‌صورت اجباری فعال یا غیرفعال می‌سازند؛ در زمان فعال بودن .BR disable ، نام‌های طولانی در شیء ورودی بریده و کوتاه (Truncate) می‌شوند. گزینه .B enable تنها در صورتی نام‌های طولانی صادر می‌کند که در ورودی وجود داشته باشند؛ این رفتار عمدتاً مشابه .B keep است، اما این مسئله که آیا گزینه .B enable ایجاد یک جدول رشته‌های خالی را در فایل خروجی تحمیل می‌کند یا خیر، تعریف‌نشده باقی مانده است. .IP \fB\-\-change\-leading\-char\fR 4 .IX Item "--change-leading-char" برخی قالب‌های فایل شیء از نویسه‌های ویژه‌ای در آغاز نام نمادها استفاده می‌کنند. متداول‌ترین این نویسه‌ها زیرخط (_) است که کامپایلرها غالباً پیش از هر نماد اضافه می‌کنند. این گزینه به .B objcopy می‌گوید هنگام تبدیل میان قالب‌های مختلف فایل شیء، نویسه آغازین نمادها را تغییر دهد. اگر قالب‌های مبدأ و مقصد از نویسه آغازین یکسانی استفاده کنند، این گزینه اثری نخواهد داشت؛ در غیر این صورت، بر حسب نیاز نویسه‌ای افزوده، حذف یا جایگزین می‌شود. .IP \fB\-\-remove\-leading\-char\fR 4 .IX Item "--remove-leading-char" چنانچه نخستین نویسه یک نماد سراسری، نویسه آغازین ویژه‌ای باشد که توسط آن قالب فایل شیء استفاده می‌شود، آن نویسه را حذف می‌کند. معمول‌ترین نویسه آغازین نماد، زیرخط (_) است. این گزینه زیرخط ابتدایی را از همه نمادهای سراسری حذف می‌کند. این قابلیت زمانی که می‌خواهید اشیائی از قالب‌های مختلف با قراردادهای نام‌گذاری متفاوت را به هم پیوند دهید سودمند است. تفاوت این گزینه با .B \-\-change\-leading\-char در این است که صرف‌نظر از قالب فایل خروجی، در هر صورت نویسه آغازین نماد را حذف می‌کند. .IP \fB\-\-reverse\-bytes=\fR\fInum\fR 4 .IX Item "--reverse-bytes=num" بایت‌ها را در بخشی که دارای محتوای خروجی است معکوس می‌کند. طول بخش باید بر مقدار ارائه‌شده بخش‌پذیر باشد تا جابه‌جایی بایت‌ها صورت پذیرد. این معکوس‌سازی پیش از انجام درهم‌تنی (Interleaving) رخ می‌دهد. .Sp این گزینه معمولاً هنگام تولید ایمیج‌های ROM برای سیستم‌های هدف با رفتارهای خاص کاربرد دارد. برای مثال در برخی بردهای مقصد، کلمات ۳۲ بیتی واکشی‌شده از ROMهای ۸ بیتی بدون در نظر گرفتن ترتیب بایت پردازنده، به صورت کم‌ارزش‌ترین بایت نخست (Little-endian) بازچینی می‌شوند. بسته به مدل برنامه‌ریزی، ممکن است تغییر ترتیب بایت‌های حافظه ROM ضروری باشد. .Sp یک فایل ساده با بخشی حاوی هشت بایت زیر را در نظر بگیرید: .nf 12345678 .fi .Sp با اعمال .B \-\-reverse\-bytes=2 برای مثال بالا، ترتیب بایت‌ها در فایل خروجی به شکل .nf 21436587 .fi خواهد بود. .Sp با اعمال .B \-\-reverse\-bytes=4 برای همان مثال، ترتیب بایت‌ها در خروجی به صورت .nf 43218765 .fi درمی‌آید. .Sp اگر ابتدا .B \-\-reverse\-bytes=2 و سپس روی فایل حاصل .B \-\-reverse\-bytes=4 اعمال شود، ترتیب بایت‌ها در فایل خروجی دوم .nf 34127856 .fi خواهد بود. .IP \fB\-\-srec\-len=\fR\fIival\fR 4 .IX Item "--srec-len=ival" تنها برای خروجی srec معنادار است. حداکثر طول رکوردهای اس (S-records) تولیدشده را روی \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 تغییر می‌دهد. این گزینه هنگامی که می‌خواهید دو ماژول باینری را بدون در دست داشتن کد منبع به یکدیگر پیوند دهید و تداخل نام (Name Collision) میان نمادها وجود دارد بسیار کارآمد است. .IP \fB\-\-redefine\-syms=\fR\fIfilename\fR 4 .IX Item "--redefine-syms=filename" گزینه .B \-\-redefine\-sym را روی هر جفت‌نماد "\fIold\fR \fInew\fR" فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. فایل \fIfilename\fR یک فایل متنی ساده با یک جفت نماد در هر خط است. توضیحات خطی می‌توانند با نویسه هش (#) مشخص شوند. این گزینه می‌تواند بیش از یک بار درج گردد. .IP \fB\-\-weaken\fR 4 .IX Item "--weaken" کلیه نمادهای سراسری موجود در فایل را به نماد ضعیف (Weak) تبدیل می‌کند. این قابلیت هنگام ساخت فایلی که قرار است با گزینه .B \-R پیونددهنده در کنار سایر اشیاء پیوند بخورد مفید است. این گزینه تنها زمانی کارایی دارد که قالب فایل شیء از نمادهای ضعیف پشتیبانی کند. .IP \fB\-\-keep\-symbols=\fR\fIfilename\fR 4 .IX Item "--keep-symbols=filename" گزینه .B \-\-keep\-symbol را برای هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. فایل \fIfilename\fR یک فایل متنی ساده است که در هر خط آن یک نام نماد قرار دارد. توضیحات با نویسه هش (#) مشخص می‌شوند. این گزینه می‌تواند چند بار وارد شود. .IP \fB\-\-strip\-symbols=\fR\fIfilename\fR 4 .IX Item "--strip-symbols=filename" گزینه .B \-\-strip\-symbol را برای تمام نمادهای فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. این فایل متنی ساده در هر خط یک نام نماد دارد و توضیحات با علامت هش (#) مشخص می‌شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR 4 .IX Item "--strip-unneeded-symbols=filename" گزینه .B \-\-strip\-unneeded\-symbol را برای کلیه نمادهای مندرج در فایل \fIfilename\fR اجرا می‌کند. ساختار فایل متنی ساده بوده و در هر خط یک نام نماد قرار دارد و خطوط توضیحات با علامت هش (#) آغاز می‌شوند. این گزینه می‌تواند بیش از یک بار استفاده شود. .IP \fB\-\-keep\-global\-symbols=\fR\fIfilename\fR 4 .IX Item "--keep-global-symbols=filename" گزینه .B \-\-keep\-global\-symbol را روی همه نمادهای موجود در فایل \fIfilename\fR اعمال می‌کند. فایل یک قالب متنی ساده با یک نام نماد در هر خط است که توضیحات آن با علامت هش (#) مشخص می‌شود. این گزینه می‌تواند بیش از یک بار به کار رود. .IP \fB\-\-localize\-symbols=\fR\fIfilename\fR 4 .IX Item "--localize-symbols=filename" گزینه .B \-\-localize\-symbol را برای تک‌تک نمادهای درج‌شده در فایل \fIfilename\fR اعمال می‌نماید. فایل یک سند متنی ساده با یک نام نماد در هر خط است و نویسه هش (#) آغازگر خطوط توضیحات خواهد بود. امکان درج چندباره این گزینه وجود دارد. .IP \fB\-\-globalize\-symbols=\fR\fIfilename\fR 4 .IX Item "--globalize-symbols=filename" گزینه .B \-\-globalize\-symbol را روی نمادهای فهرست‌شده در فایل \fIfilename\fR پیاده می‌کند. فایل متنی ساده است و در هر خط نام یک نماد ثبت می‌شود؛ توضیحات با نویسه هش (#) آغاز می‌شوند. این گزینه می‌تواند بیش از یک بار به کار رود. نکته: این گزینه را نمی‌توان هم‌زمان با .B \-G یا .B \-\-keep\-global\-symbol استفاده کرد. .IP \fB\-\-weaken\-symbols=\fR\fIfilename\fR 4 .IX Item "--weaken-symbols=filename" گزینه .B \-\-weaken\-symbol را برای نمادهای موجود در فایل \fIfilename\fR اعمال می‌کند. فایل متنی ساده و دارای یک نماد در هر خط است و کامنت‌ها با نویسه هش (#) شروع می‌شوند. این گزینه می‌تواند بیش از یک بار قید شود. .IP \fB\-\-alt\-machine\-code=\fR\fIindex\fR 4 .IX Item "--alt-machine-code=index" چنانچه معماری خروجی دارای کدهای ماشین جایگزین (Alternate Machine Codes) باشد، به‌جای کد پیش‌فرض از کد شماره \fIindex\fR استفاده می‌کند. این ویژگی زمانی مفید است که برای یک ماشین یک کد رسمی تعیین شده و زنجیره ابزار (Toolchain) از کد جدید پشتیبانی می‌کند، اما برنامه‌های دیگر همچنان به استفاده از کد پیشین وابسته هستند. در معماری‌های مبتنی بر ELF، اگر کد جایگزین \fIindex\fR وجود نداشته باشد، این مقدار به‌صورت یک عدد مطلق در فیلد e_machine از هدر ELF ذخیره می‌شود. .IP \fB\-\-writable\-text\fR 4 .IX Item "--writable-text" بخش متنی (کد / Text) خروجی را به‌عنوان قابل نوشتن (Writable) علامت‌گذاری می‌کند. این گزینه برای همه قالب‌های فایل شیء معنادار نیست. .IP \fB\-\-readonly\-text\fR 4 .IX Item "--readonly-text" بخش متنی (Text) خروجی را محافظت‌شده در برابر نوشتن (فقط خواندنی / Read-only) می‌کند. این گزینه در تمام قالب‌های فایل شیء کاربرد ندارد. .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 Sections) در فایل خروجی اضافه می‌کند. .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 اگر فایل اطلاعات اشکال‌زدایی در یک مسیر ساخته شده اما قرار است بعداً در مسیر دیگری نصب شود، هرگز از مسیر محل نصب آینده استفاده نکنید؛ زیرا گزینه .B \-\-add\-gnu\-debuglink شکست خواهد خورد چون فایل هنوز در آن مسیر وجود ندارد. در عوض، فایل اطلاعات اشکال‌زدایی را در پوشه جاری قرار دهید و گزینه .B \-\-add\-gnu\-debuglink را بدون هیچ نام پوشه‌ای (صرفاً با نام فایل) به صورت زیر به کار ببرید: .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" هنگام پاک‌سازی نمادهای یک فایل (مثلاً با گزینه‌های .B \-\-strip\-debug یا .BR \-\-strip\-unneeded )، نمادهایی را که نام بخش‌ها را تعیین می‌کنند و در حالت عادی حذف می‌شوند، حفظ می‌کند. .IP \fB\-\-keep\-file\-symbols\fR 4 .IX Item "--keep-file-symbols" هنگام پاک‌سازی نمادهای یک فایل (مثلاً با .B \-\-strip\-debug یا .BR \-\-strip\-unneeded )، نمادهایی را که نام فایل‌های کد منبع را مشخص می‌کنند و در حالت عادی پاک می‌شوند، نگه می‌دارد. .IP \fB\-\-only\-keep\-debug\fR 4 .IX Item "--only-keep-debug" فایل را پالایش کرده، محتوای هر بخشی را که توسط .B \-\-strip\-debug حذف نمی‌شد پاک می‌کند و بخش‌های اشکال‌زدایی را دست‌نخورده باقی می‌گذارد. در فایل‌های ELF، این گزینه تمام بخش‌های یادداشت (Note sections) را در خروجی حفظ می‌کند. .Sp نکته: هدر بخش‌های پاک‌سازی‌شده، از جمله اندازه‌های آن‌ها، حفظ می‌شوند اما محتوای واقعی آن‌ها دور ریخته می‌شود. حفظ هدر بخش‌ها به سایر ابزارها امکان می‌دهد تا فایل حاوی اطلاعات دیباگ را با فایل اجرایی واقعی تطبیق دهند، حتی اگر آن فایل اجرایی به فضای آدرس دیگری منتقل شده باشد. .Sp هدف از این گزینه، استفاده از آن همراه با .B \-\-add\-gnu\-debuglink برای تولید یک باینری دوقسمتی است: نخست یک باینری سبک و پالایش‌شده که فضای کمتری در حافظه RAM و دیسک اشغال می‌کند و دوم یک فایل اطلاعات اشکال‌زدایی که تنها در صورت نیاز به دیباگ فراخوانی می‌شود. مراحل پیشنهادی برای ساخت این فایل‌ها بدین شرح است: .RS 4 .IP 1. 4 فایل اجرایی را طبق روال معمول پیوند دهید؛ با فرض اینکه نام آن "foo" باشد: .IP 2. 4 دستور \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR را اجرا کنید تا فایلی شامل اطلاعات اشکال‌زدایی ایجاد شود. .IP 3. 4 دستور \f(CWobjcopy \-\-strip\-debug foo\fR را اجرا کنید تا یک فایل اجرایی پالایش‌شده حاصل شود. .IP 4. 4 دستور \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR را اجرا کنید تا پیوندی به فایل اطلاعات اشکال‌زدایی در فایل اجرایی پالایش‌شده درج گردد. .RE .RS 4 .Sp نکته: انتخاب پسوند ".dbg" برای فایل دیباگ اختیاری است. همچنین مرحله .B \-\-only\-keep\-debug اجباری نیست و می‌توانید به‌جای آن روش زیر را به کار ببرید: .IP 1. 4 فایل اجرایی را پیوند دهید. .IP 2. 4 فایل "foo" را به "foo.full" کپی کنید. .IP 3. 4 دستور \f(CWobjcopy \-\-strip\-debug foo\fR را اجرا کنید. .IP 4. 4 دستور \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR را اجرا نمایید. .RE .RS 4 .Sp یعنی فایلی که با .B \-\-add\-gnu\-debuglink به آن اشاره می‌شود می‌تواند همان باینری اجرایی کامل باشد و لزوماً نباید فایلی باشد که توسط سوییچ .B \-\-only\-keep\-debug ساخته شده است. .Sp نکته: این سوییچ تنها برای فایل‌های کاملاً پیوندخورده طراحی شده است. استفاده از آن روی فایل‌های شیء که اطلاعات دیباگ در آن‌ها ممکن است ناقص باشد منطقی نیست. افزون بر این، قابلیت gnu_debuglink در حال حاضر تنها از یک نام فایل حاوی اطلاعات اشکال‌زدایی پشتیبانی می‌کند، نه چندین نام فایل به‌ازای هر فایل شیء. .RE .IP \fB\-\-strip\-dwo\fR 4 .IX Item "--strip-dwo" محتوای کلیه بخش‌های DWARF .dwo را حذف کرده و سایر بخش‌های اشکال‌زدایی و نمادها را دست‌نخورده باقی می‌گذارد. این گزینه برای استفاده کامپایلر در قالب سوییچ .B \-gsplit\-dwarf طراحی شده است؛ سوییچی که اطلاعات اشکال‌زدایی را میان فایل .o و یک فایل مجزای .dwo تفکیک می‌کند. کامپایلر تمام اطلاعات دیباگ را در یک فایل تولید کرده، سپس با استفاده از گزینه .B \-\-extract\-dwo بخش‌های .dwo را درون فایل .dwo کپی می‌کند و سرانجام با سوییچ .B \-\-strip\-dwo آن بخش‌ها را از فایل اصلی .o پاک می‌نماید. .IP \fB\-\-extract\-dwo\fR 4 .IX Item "--extract-dwo" محتوای کلیه بخش‌های DWARF .dwo را استخراج می‌کند. برای اطلاعات بیشتر گزینه .B \-\-strip\-dwo را ببینید. .IP "\fB\-\-file\-alignment\fR \fInum\fR" 4 .IX Item "--file-alignment num" تراز فایل (File Alignment) را تعیین می‌کند. بخش‌های فایل همواره در آفست‌هایی آغاز خواهند شد که مضربی از این عدد باشند. مقدار پیش‌فرض ۵۱۲ است. [این گزینه ویژه اهداف 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 را به‌عنوان آدرس پایه (Base Address) برنامه یا dll تعیین می‌کند. این آدرس پایین‌ترین نقطه از حافظه است که هنگام بارگذاری برنامه یا dll استفاده می‌شود. برای کاهش نیاز به بازنشانی و افزایش کارایی dllها، هر کتابخانه باید یک آدرس پایه یکتا داشته باشد تا با سایر dllها هم‌پوشانی پیدا نکند. مقدار پیش‌فرض برای فایل‌های اجرایی 0x400000 و برای dllها 0x10000000 است. [این گزینه ویژه اهداف PE است.] .IP "\fB\-\-section\-alignment\fR \fInum\fR" 4 .IX Item "--section-alignment num" [این گزینه ویژه اهداف PE است.] .Sp فیلد تراز بخش (Section Alignment) را در هدر PE (در صورت وجود در باینری) تنظیم می‌کند. بخش‌ها در حافظه همواره از آدرس‌هایی آغاز می‌شوند که مضربی از این عدد باشند. مقدار پیش‌فرض 0x1000 است. .Sp نکته: چنانچه آدرس‌های LMA یا VMA یک بخش تراز نباشند و از طریق گزینه‌های .B \-\-set\-section\-lma یا .B \-\-set\-section\-vma تنظیم نشده باشند و فایل نیز به‌طور کامل بازنشانی شده باشد، پیام هشداری صادر می‌شود؛ در این حالت تصمیم‌گیری درباره لزوم به‌روزرسانی 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(CWnative\fR، \f(CWwindows\fR، \f(CWconsole\fR، \f(CWposix\fR، \f(CWefi\-app\fR، \f(CWefi\-bsd\fR، \f(CWefi\-rtd\fR، \f(CWsal\-rtd\fR و \f(CWxbox\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 از این گزینه برای ساخت یک فایل .sym برای کرنل VxWorks استفاده می‌شود. همچنین روشی کاربردی برای کاهش حجم فایل ورودی گزینه .B \-\-just\-symbols پیونددهنده است. .RE .IP \fB\-\-compress\-debug\-sections\fR 4 .IX Item "--compress-debug-sections" بخش‌های اشکال‌زدایی DWARF را با استفاده از zlib همراه با فلگ SHF_COMPRESSED از ELF ABI فشرده‌سازی می‌کند. نکته: اگر فشرده‌سازی در عمل باعث بزرگ‌تر شدن حجم یک بخش شود، آن بخش فشرده نخواهد شد. .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 را کنترل می‌کنند. گزینه .B \-\-compress\-debug\-sections=none معادل .B \-\-decompress\-debug\-sections است. گزینه‌های .B \-\-compress\-debug\-sections=zlib و .B \-\-compress\-debug\-sections=zlib\-gabi معادل .B \-\-compress\-debug\-sections هستند. گزینه .B \-\-compress\-debug\-sections=zlib\-gnu بخش‌های دیباگ DWARF را با فرمت منسوخ zlib-gnu فشرده می‌کند و نام بخش‌های اشکال‌زدایی تغییر یافته و با .B .zdebug آغاز می‌شوند. گزینه .B \-\-compress\-debug\-sections=zstd بخش‌های اشکال‌زدایی DWARF را با استفاده از الگوریتم zstd فشرده می‌سازد. نکته: اگر فشرده‌سازی موجب بزرگ‌تر شدن بخش شود، فشرده نشده و نام آن نیز تغییر نمی‌کند. .IP \fB\-\-decompress\-debug\-sections\fR 4 .IX Item "--decompress-debug-sections" بخش‌های اشکال‌زدایی DWARF را از حالت فشرده خارج می‌کند. برای بخش‌های .zdebug، نام اصلی آن‌ها بازیابی خواهد شد. .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(CWSTT_COMMON\fR تبدیل شوند یا به نوع \f(CWSTT_OBJECT\fR. گزینه .B \-\-elf\-stt\-common=yes نوع نماد عمومی را به \f(CWSTT_COMMON\fR تبدیل می‌کند، در حالی که گزینه .B \-\-elf\-stt\-common=no آن را به نوع \f(CWSTT_OBJECT\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 شماره نگارش .B objcopy را نمایش می‌دهد. .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 خروجی با جزئیات کامل: فهرستی از کلیه فایل‌های شیء تغییریافته ارائه می‌دهد. در مورد فایل‌های آرشیو، .B objcopy \-v تمام اعضای آرشیو را فهرست می‌کند. .IP \fB\-\-help\fR 4 .IX Item "--help" نمایش خلاصه‌ای از گزینه‌های .BR objcopy . .IP \fB\-\-info\fR 4 .IX Item "--info" نمایش فهرستی از کلیه معماری‌ها و قالب‌های شیء در دسترس. .IP \fB@\fR\fIfile\fR 4 .IX Item "@file" خواندن گزینه‌های خط فرمان از \fIfile\fR. گزینه‌های خوانده‌شده دقیقاً در جایگاه آرگومان اولیه @\fIfile\fR جایگزین می‌شوند. چنانچه فایل وجود نداشته باشد یا خوانده نشود، آرگومان به‌صورت لفظی در نظر گرفته شده و حذف نمی‌شود. .Sp گزینه‌ها در \fIfile\fR با نویسه‌های فاصله خالی (Whitespace) تفکیک می‌شوند. اگر گزینه‌ای نیاز به فاصله داشته باشد، می‌توان کل گزینه را در نقل‌قول تکی یا جفتی محصور کرد. هر نویسه‌ای (از جمله ممیز وارونه) را می‌توان با گذاشتن یک ممیز وارونه (\e) در پیش از آن وارد نمود. خود فایل نیز می‌تواند شامل گزینه‌های دیگری به صورت @\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\-2026 Free Software Foundation, Inc. .PP مجوز نسخه برداری، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License) نسخه ۱.۳ یا هر نسخه جدیدتر منتشرشده توسط بنیاد نرم‌افزارهای آزاد (FSF) اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متن‌های روی جلد و بدون متن‌های پشت جلد. نسخه‌ای از این مجوز در بخشی با عنوان "GNU Free Documentation License" درج شده است.