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