Go: cmd/go: cgo рд╢реНрд╡реЗрддрд╕реВрдЪреА рд╕реЗ рдЧрд╛рдпрдм рд╡рд┐рдХрд▓реНрдк

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдлрд╝рд░ре░ 2018  ┬╖  138рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: golang/go

cmd/go (#23672) рдХреЗ рд▓рд┐рдП рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдкреИрдЪ рдиреЗ cgo рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдордд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдЬреЛрдбрд╝реАред рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧреЛрдВ рдиреЗ рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХреА рд╕реВрдЪрдирд╛ рджреА рд╣реИ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рднреА рдЕрдиреБрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕реВрдЪреА рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реИ, рддрд╛рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реАрдПрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХреЗрдВред

FrozenDueToAge release-blocker

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреНрдпрд╛ рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛрдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрд╛рдЗрд▓рд░ (рдФрд░ рд▓рд┐рдВрдХрд░, рдЖрджрд┐) рд╡рд┐рдХрд▓реНрдк рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдЙрди рд╕рднреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЦрддрд░рдирд╛рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рд╕реИрдХрдбрд╝реЛрдВ рд╣реИрдВ рдФрд░ рд╢реНрд╡реЗрдд рд╕реВрдЪреА рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рдордЬрд╝рд╛ рдирд╣реАрдВ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ...

рдпрд╣ рд╢рд╛рдпрдж рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдкреИрдЪ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдмрд╛рдд рдорд┐рд▓реА: рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдЭрдВрдбреЗ рдХреЛ рдкрд╣рд▓реЗ рд╕рдВрдХрд▓рдХ рдкреНрд▓рдЧрдЗрди рдЫреЗрдж рдХреЛ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛, рдФрд░ 1.10 рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдкреНрд░рдгрд╛рд▓реА рд╕рдХреНрд╖рдо рдХреА рдЧрдИ рдереА, рдЬрд┐рд╕рдХреА рд╕реВрдЪреА рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рдереАред рдЖрд░рд╕реА рдХреЗ рджреМрд░рд╛рди рдКрдкрд░ рдХреБрдЫ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдирд╡реА рд╡рд░реНрд░реНрд╕ рдХрд╛рдлреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ 1.9.3 рдкрд░ рд╡рд╛рдкрд╕ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдХреВрд▓ рд╣реИред

рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдФрд░ рд░реЗрдЧреЗрдХреНрд╕ рд╕реЗ рднрд░реА рд╢реНрд╡реЗрддрд╕реВрдЪреА рднреЗрд╕ рдореЗрдВ рдХрд╛рд▓реА рд╕реВрдЪреА рдмрди рдЬрд╛рддреА рд╣реИ?

рд╕рднреА 138 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

23737 рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ рдХрд┐ pkg-config -libs рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЭрдВрдбреЗ рдХреЛ рд╕рдВрдХрд▓рдХ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ CGO_CFLAGS_ALLOW , рдЬрдм рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдВрдХрд░ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдФрд░ CGO_LDFLAGS_ALLOW рдмрдЬрд╛рдп рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ CL рд╣реИ: https://golang.org/cl/92755ред

рд▓рд┐рдВрдХрд░ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреЛ .a рдлрд╛рдЗрд▓реЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА .o , .so , рдЖрджрд┐ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ CL рд╣реИ: https://golang.org/cl/92855ред рдпрд╣ #23739 рд╣реИред

#23672 рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЗрди рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдПрдВ:

-fno-rtti
-fpermissive

рдФрд░ рдпреЗ рд▓рд┐рдВрдХрд░ рд╡рд┐рдХрд▓реНрдк:

-Wl,-framework
-Wl,--no-as-needed

23742 рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ -fmodules ред рдХреНрд▓реИрдВрдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдИ -fmodules рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рд╕рднреА рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ -fmodules-cache-path рдФрд░ -fmodules-user-build-path рдПрдХ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ рдЬреЛ рдХреНрд▓реИрдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЬреЛ рд╢рд╛рдпрдж рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрдХрд▓рди рдореЛрдб рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

23743 рд▓рд┐рдВрдХрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ -Wl,--no-as-needed ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдПрд▓ рд╣реИ: https://golang.org/cl/92795ред

23744 рдЗрди рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ:

-finput-charset=UTF-8
--std=c99
-pedantic-errors

рдХрдИ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рд▓рд┐рдВрдХрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рдВрдЧрд▓ рдбреИрд╢ рдпрд╛ рдбрдмрд▓ рдбреИрд╢ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рднреА рдЗрд╕реА рддрд░рд╣ рд╢рд┐рдерд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдСрд░реНрдереЛрдЧреЛрдиреИрд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП: рдореИрдВ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реВрдВ рдХрд┐ -framework рдХреЗ рдЦреЛрдЬ рдкрде рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореИрдВ рдпрд╣ рднреА рднреВрд▓ рдЬрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╣ рдХреМрди рд╕рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред (рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ /Library/Frameworks , рдЬреЛ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдРрдкреНрдкрд▓ рдРрдк-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдврд╛рдВрдЪреЗ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЦреЛрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред)

рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ cgo рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -as-needed рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ? рдпрд╣ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ (рдЬреЛ рдкрд╣рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдЬреЛ рдореБрдЭреЗ "рдЬреАрд╕реАрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ" рдХреЗ рд▓рд┐рдП рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ) рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдерд┐рддрд┐рддреНрдордХ рддрд░реНрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реАрдЬреАрдУ рдХреБрдЫ рднреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдЭрдВрдбреЗ рдкрд░рд┐рдгрд╛рдореА рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдХрд╣рд╛рдВ рдЬрд╛рддреЗ рд╣реИрдВред

@andlabs рд▓рд┐рдЦрдирд╛ рдареАрдХ рд╣реИ

#cgo LDFLAGS: -Wl,--as-needed -loptlib -WL,--no-as-needed

рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╡рд┐рд╖рдп рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк go get рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВред

рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп:

#cgo !windows pkg-config: --static ${SRCDIR}/vendor/libgit2/build/libgit2.pc

рд╕рдВрдХрд▓рди рдирд┐рдореНрди рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:

invalid pkg-config package name: --static

рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП (1.9.4 рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ pkg-config рддрд░реНрдХреЛрдВ рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@ rgburke pkg-config рдЖрдЙрдЯрдкреБрдЯ рдЕрдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рдорд╛рди FLAGS_ALLOW рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ pkg-config -libs CGO_CFLAGS_ALLOW рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЗрд╕реЗ CGO_LDFLAGS_ALLOW рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдо рдПрдХ рдХреНрд▓реЛрдЬ-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЕрдм рддрдХ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

#cgo LDFLAGS:/path/to/one/liblibrary1.a
#cgo LDFLAGS:/path/to/two/liblibrary2.a
etc.

рдмреЗрд╢рдХ рдЕрдм рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рдПрдХ рдЙрдкрд╛рдп:

#cgo LDFLAGS:-L/path/to/one -llibrary1
#cgo LDFLAGS:-L/path/to/two -llibrary2

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рд▓рд┐рдВрдХрд░ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк https://go-review.googlesource.com/c/go/+/92855 рдореЗрдВ рдЕрдиреБрдордд "рдирд╛рдореЛрдВ" рдХреА рд╕реВрдЪреА рдореЗрдВ '/' рдЬреЛрдбрд╝рдирд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд╛рдЗрди 91 рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ:

re(`[a-zA-Z0-9_\/].*\.(o|obj|dll|dylib|so|a)`), // direct linker inputs: x.o or libfoo.so (but not -foo.o or @foo.o)

рдмрд╛рдж рд╡рд╛рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рдЗрд╕рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

@mirtchovski рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рд╣реИ (рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ .a рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдереЗ)

.a рдЕрдм рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдЙрд╕ рдкреИрдЪ рдХреЗ рдмрд╛рдж) рдЗрд╕рд▓рд┐рдП 'libsomething.a' рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди '/path/to/libsomething.a' рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

@ianlancetaylor @rgburke рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ --static рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдЬреЛ рдореБрдЭреЗ рдЫреЗрдж рд╕реЗ # 23737 рддрдХ рд▓реЗ рдЧрдпрд╛ред --static рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡реИрдз рдкреИрдХреЗрдЬ рдирд╛рдо рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ _before_ pkg-config рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣рд╛рдВ https://github.com/golang/go/blob/104445e3140f4468839db49a25cb0182f7923174/src/ cmd/go/internal/work/exec.go#L939 -L940.

рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░рд╛ рддреНрд╡рд░рд┐рдд рд╕реБрдзрд╛рд░ PKG_CONFIG рдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдерд╛, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ pkg-config --static "$@" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

@jeddenlea - рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЙрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ред

рд╣рдордиреЗ рдЗрд╕реЗ -msse рдФрд░ -msse4.2 рд╕рд╛рде рдорд╛рд░рд╛ред

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ cgo LDFLAGS рдореЗрдВ "${SRCDIR}/file.o" рдХреЗ рд╕рд╛рде рдорд╛рд░рд╛ред

рдореИрдВ рддрд░реНрдХ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рд╕рд╛рджреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рд▓рд┐рдВрдХрд░ рдЗрдирдкреБрдЯ рд╣реИ
LDFLAGS рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ
(рдХрдо рд╕реЗ рдХрдо *.a, *.o рдФрд░ *.so)ред

.a рдФрд░ .so рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬрд┐рд╕реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ "-L${SRCDIR} рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
-рдирд╛рдо", рдЬреЛрдбрд╝рдирд╛
рд▓рд┐рдВрдХрд░ рдХрдорд╛рдВрдб рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

CGO_LDFLAGS_ALLOW рд╕реЗрдЯ рдХрд░рдирд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдмреЛрдЭрд┐рд▓ рд╣реИред
рдПрдХ рдФрд░
рд╡рд┐рдХрд▓реНрдк рдореЗрд░реЗ file.o рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ file.syso рдХрд░рдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП
рдорд╛рдорд▓рд╛, рдореИрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ рдЙрд╕ file.o рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рд▓реНрдб рдЯреИрдЧ рд╣реЛрддрд╛ рд╣реИ
рд╢рд╛рдорд┐рд▓ (рдж
рдмрд┐рд▓реНрдб рдЯреИрдЧ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ #cgo LDFLAGS рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ) рдФрд░
рдЕрдм рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ
syso рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдордирдорд╛рдирд╛ рдмрд┐рд▓реНрдб рдЯреИрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдпрджрд┐ рд╣рдо рдкрд┐рдЫрд▓реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдЧреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо a . рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдирдпрд╛
"#cgo LDLIBS" рдЬрд┐рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХрд░ рдореЗрдВ рдЕрдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред
рддрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ LDLIBS рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдЦреНрдд рдирд┐рдпрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдФрд░ рдХреЛрдИ рдбреИрд╢ рдирд╣реАрдВ
рдЙрдкрд╕рд░реНрдЧ рдореЗрдВ рдЕрдиреБрдорддрд┐ рд╣реИред)

рд╣рдордиреЗ рдЗрд╕реЗ --std=c99 рд╕рд╛рде рдорд╛рд░рд╛ рд╣реИ

-рдПрд╕рдЯреАрдбреА=рд╕реА++11

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ -std=рд╕рдлреЗрдж рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рд╕рдВрднрд╡рддрдГ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдкрд░: -fopenmp

рдЧреЛ v1.10rc2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рдордЧ рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐,

23:24 ~/go-test
master ms 130 % go get -v github.com/h2non/bimg
github.com/h2non/bimg (download)
github.com/h2non/bimg
go build github.com/h2non/bimg: invalid flag in pkg-config --cflags: -fopenmp

рдореИрдВ -isystem рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдЖрдЧреЗ рддрд░реНрдХ (рдЬреЛ рдПрдХ рдкрде рд╣реИ) рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: https://github.com/golang/go/issues/23749#issuecomment -364239496

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдерд╛:

#cgo linux LDFLAGS: ${SRCDIR}/../../../../path/to/thing/libthing_static.a

рдФрд░ рдпрд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдП рд╣реИрдВ:

#cgo linux LDFLAGS: -L${SRCDIR}/../../../../path/to/thing -lthing_static

.../path/to/thing ${SRCDIR} ред

рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ libthing.a рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SRCDIR рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

OSX рдкрд░, рдЕрдкрдиреЗ cgo рдзреНрд╡рдЬ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде рдирдП рдЦрдирди рдХрд┐рдП рдЧрдП go1.9.4 рдХреЗ рд╕рд╛рде, рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХрд░ рдХреЛ рдмрддрд╛ рд░рд╣рд╛ рдерд╛ рдХрд┐ .a рд╕рдВрдЧреНрд░рд╣ рдХрд┐рд╕рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╣реИ: (рдпрд╣рд╛рдВ https://github.com/gijit/gi/blob/master/vendor/ github.com/glycerine/golua/lua/lua.go#L10 )

~~~

рд╕реАрдЬреАрдУ рдПрд▓рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕: ${SRCDIR}/../../../LuaJIT/LuaJIT/src/libluajit.a -lm -ldl

~~~

рдирд┐рд░реНрдорд╛рдг рдХреЗ рдкреНрд░рдпрд╛рд╕ рдкрд░ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ:

~рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛рдЧреЛ рдмрд┐рд▓реНрдб -ldflags "-X main.LastGitCommitHash=30259813c10c0f6b63768b4f35358828e2e29f0b -X main.BuildTimeStamp=2018-02-09T22:49:48+0700 -X main.GitBranch=master -X main.NearestGitTag=v0.9.6 -X main. =go_version_go1.9.4_darwin/amd64" -o giрдЧреЛ рдмрд┐рд▓реНрдб github.com/gijit/gi/vendor/github.com/рдЧреНрд▓рд┐рд╕рд░реАрди/рдЧреЛрд▓реБрдЖ/рд▓реБрдЖ: #cgo LDFLAGS рдореЗрдВ рдЕрдорд╛рдиреНрдп рдзреНрд╡рдЬ: /Users/jaten/go/src/github.com/gijit/gi/vendor/github. рдХреЙрдо/рдЧреНрд▓рд┐рд╕рд░реАрди/рдЧреЛрд▓реБрдЖ/рд▓реБрдЖ/../../../рд▓реБрдЖрдЬрд┐рдд/рд▓реБрдЖрдЬрд┐рдд/src/libluajit.aрдмрдирд╛рдирд╛ [2]: * [рдмрд┐рд▓реНрдб] рддреНрд░реБрдЯрд┐ 1рдореЗрдХ [1]: [рдЗрдВрд╕реНрдЯреЙрд▓] рддреНрд░реБрдЯрд┐ 2рдмрдирд╛рдирд╛: ** [рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ] рддреНрд░реБрдЯрд┐ 2jaten@jatens-MacBook-Pro ~/go/src/github.com/gijit/gi (рдорд╛рд╕реНрдЯрд░) $~
рдореИрдВрдиреЗ -L -l рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдХреЛрд╢рд┐рд╢ рдХреА,
~~~

рд╕реАрдЬреАрдУ рдПрд▓рдбреАрдПрдлрдПрд▓рдПрдЬреАрдПрд╕: -рдПрд▓${рдПрд╕рдЖрд░рд╕реАрдбреАрдЖрдИрдЖрд░}/../../../рд▓реБрдЖрдЬрд┐рдЯ/рд▓реБрдЖрдЬрд┐рдЯ/src -рд▓реНрд▓реБрдЖрдЬреАрдд -рдПрд▓рдПрдо -рдПрд▓рдбреАрдПрд▓

~~~
рд▓реЗрдХрд┐рди рдлрд┐рд░ рд▓рд┐рдВрдХрд░ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╣реА рдирд╛рдо рд╕реЗ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рд┐рдВрдХрдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рдХреЗ рдмрдЬрд╛рдп рд░рдирдЯрд╛рдЗрдо рдорд┐рд▓рддрд╛ рд╣реИред

~~~
рдЪрд▓рдиреЗ рдХреЗ рд╕рдордп рдкрд░...
dyld: рдЖрд▓рд╕реА рдкреНрд░рддреАрдХ рдмрдВрдзрди рд╡рд┐рдлрд▓: рдкреНрд░рддреАрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛: _luajit_ctypeid
рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд: /var/folders/6s/zdc0hvvx7kqcglg5yqm3kl4r0000gn/T/go-build615587282/github.com/gijit/gi/pkg/compiler/_test/compiler.test
рдЗрд╕рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд: /usr/local/lib/libluajit-5.1.2.dylib

dyld: рдкреНрд░рддреАрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛: _luajit_ctypeid
рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд: /var/folders/6s/zdc0hvvx7kqcglg5yqm3kl4r0000gn/T/go-build615587282/github.com/gijit/gi/pkg/compiler/_test/compiler.test
рдЗрд╕рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд: /usr/local/lib/libluajit-5.1.2.dylib

рд╕рд┐рдЧрдЯреНрд░реИрдк: рдЯреНрд░реЗрд╕ рдЯреНрд░реИрдк
рдкреАрд╕реА = 0x7fff66ff4075 рдореАрдЯрд░ = 0 рд╕рд┐рдЧрдХреЛрдб = 1
рд╕реАрдЬреАрдУ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдЖрдпрд╛ рд╕рдВрдХреЗрдд
~~~
/usr/local/lib/libluajit-5.1.2.dylib рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдерд╛; рдмрд▓реНрдХрд┐ рдпрд╣ ${SRCDIR}/../../../LuaJIT/LuaJIT/src/libluajit.a рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рддреЛ рдЕрднреА рднреА рдПрдХ рдХрд╛рдордХрд╛рдЬ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИред

рдЕрджреНрдпрддрди: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореЗрд░реЗ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд▓ рд╣реИред
~рдирд┐рд░реНрдпрд╛рдд CGO_LDFLAGS_ALLOW="${GOPATH}/src/github.com/gijit/gi/vendor/github.com/рдЧреНрд▓рд┐рд╕рд░реАрди/golua/lua/../../../LuaJIT/LuaJIT/src/libluajit.a";~

рдЕрджреНрдпрддрди: рд╢реБрдХреНрд░ рд╣реИ, рдЗрдпрд╛рди рдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рдЫреЛрдЯрд╛ рд░реЗрдЧреЗрдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд░реЗрдЧрд╛:
~рдирд┐рд░реНрдпрд╛рдд CGO_LDFLAGS_ALLOW=".*.a";~

-Wl, -рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИ? рдпрджрд┐ рд╡рд╣ Apple рдврд╛рдВрдЪрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдПрдХ рддрд░реНрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╢рд╛рдпрдж рдЪрд╛рд╣рддреЗ рд╣реИрдВ -Wl,-framework,foo. рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдРрдкреНрдкрд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рддреЛ -рдлреНрд░реЗрдорд╡рд░реНрдХ (рдиреЛ-рдбрдмреНрд▓реВрдПрд▓,) рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

1.10rc2 рдХреЗ рд╕рд╛рде, golang.org/x/net/internal/socket рд╕реЛрд▓рд╛рд░рд┐рд╕ рдХреЗ рд▓рд┐рдП рдФрд░ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

$ GOOS=solaris go build golang.org/x/net/ipv4
# golang.org/x/net/internal/socket
ext/src/golang.org/x/net/internal/socket/sys_solaris.go:24:3: //go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" only allowed in cgo-generated code
ext/src/golang.org/x/net/internal/socket/sys_solaris.go:25:3: //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" only allowed in cgo-generated code
ext/src/golang.org/x/net/internal/socket/sys_solaris.go:26:3: //go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so" only allowed in cgo-generated code
ext/src/golang.org/x/net/internal/socket/sys_solaris.go:27:3: //go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so" only allowed in cgo-generated code

(рдпрд╣рд╛рдВ рдХреЛрдИ рд╕реАрдЬреАрдУ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдХреНрд░реЙрд╕ рдмрд┐рд▓реНрдб рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред)

рдореИрдВ рдЗрд╕реЗ рдПрдХ рдкреВрд░реНрдг рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдПрдХ рд╕реНрдерд┐рд░ lib рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛:

#cgo LDFLAGS: /usr/local/lib/libsecp256k1.a

рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ :(

@piotrnar CGO_LDFLAGS_ALLOW='.*\.a$'

@ianlancetaylor , рдзрдиреНрдпрд╡рд╛рдж!

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЛ CGO_LDFLAGS_ALLOW='.*\.a$' рд▓рд┐рдП 1.9.4 рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ (рдмреЙрдХреНрд╕ рд╕реЗ рд╣рдЯрдХрд░) рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред

@piotrnar рд╣рд╛рдВ, рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрди рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдо .a рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓ рджреЗрдВрдЧреЗред

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ -fstack-protector рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

рдзрдиреНрдпрд╡рд╛рдж :)

рд╢реНрд╡реЗрддрд╕реВрдЪреА -static-libstdc++ рдХреГрдкрдпрд╛ред

рдкреИрдХреЗрдЬ github.com/flynn/hid рдбрд╛рд░реНрд╡рд┐рди рдкрд░ LDFLAGS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ -fconstant-cfstrings рдкрд╛рд╕ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг 1.9.4 рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдЗрди рд▓рд┐рдВрдХрд░ рдлрд╝реНрд▓реИрдЧреНрд╕ рдХреЛ рд╢реНрд╡реЗрдд рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
-Wl, -рдмрд╕реНрдЯреЗрдЯрд┐рдХ
-рдбрдмреНрд▓реНрдпреВрдПрд▓, -рдмрдбрд╛рдпрдирд╛рдорд┐рдХ
-рдбрдмреНрд▓реНрдпреВрдПрд▓,--рд╕реНрдЯрд╛рд░реНрдЯ-рдЧреНрд░реБрдк
-Wl,--рдЕрдВрдд-рд╕рдореВрд╣

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ: рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореЗрд░реЗ рд▓рд┐рдП рдЗрддрдиреА рд╡реНрдпрд╛рдкрдХ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЦрд░рд╛рдм рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд▓рдЧрддреА рд╣реИред

рдЖрдЧреЗ рдЬрд╛рдХрд░, рдПрдХ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдХрд┐ рдпрджрд┐ рдХреБрдЫ рдирдП рд╕рдВрднрд╛рд╡рд┐рдд-рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд┐рдП рдЧрдП, рддреЛ рд╕рднреА рдЧреЛ рд░рд┐рд▓реАрдЬрд╝ рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдЬрд┐рд╕ рд╣рдж рддрдХ рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣рдорд▓реЗ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдмрдЪрд╛рд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреБрдЫ рдирдП рд╕рдВрднрд╛рд╡рд┐рдд-рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд┐рдП рдЧрдП

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдмреЗрд╣рддрд░ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреЛрдиреЛрдВ рддрд░рд╣ рд╕реЗ рдХрд╛рдЯрддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рднреА рдирдП рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рддрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕реЗ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдХреЛрдИ рдирдпрд╛ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдПрдХ рдирдИ рдЧреЛ рд░рд┐рд▓реАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ...

@рдЧреНрд▓рд┐рд╕рд░реАрди рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╢реНрд╡реЗрддрд╕реВрдЪреА рдЕрджреНрдпрддрди рд╣реЛрдиреЗ рддрдХ рдЖрдк рд╣рдореЗрд╢рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ env рдЪрд░ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ 'рдЧреЛ рдЧреЗрдЯ' рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред

рдПрдХ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг: рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдордХ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред

рдлрд┐рд░ рдкреНрд░рд╛рдердорд┐рдХ 'рдЧреЛ рдмрд┐рд▓реНрдб' рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреА рдЬрд╝рд░реВрд░рдд рдХреЗ рдЭрдВрдбреЗ рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ALLOW рд░реЗрдЧреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЬрдмрдХрд┐ рдЕрднреА рднреА рдирд┐рд░реНрднрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдордирдорд╛рдиреА рдЪреАрдЬреЗрдВ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рд╣реИред

@рдЧреНрд▓рд┐рд╕рд░реАрди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрд╕ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрднреА рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рд╢реНрд╡реЗрддрд╕реВрдЪреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдореБрджреНрджрд╛ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ (рдПрдХ рдирдпрд╛ рдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ)ред рд╣рдо рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВред

рдзрдиреНрдпрд╡рд╛рджред

#cgo CFLAGS рдореЗрдВ рдЕрдорд╛рдиреНрдп рдзреНрд╡рдЬ: -рдкрд╛рдЗрдк

go build github.com/zchee/docker-machine-driver-xhyve/vendor/github.com/zchee/libhyperkit: invalid flag in #cgo CFLAGS: -fno-common

рдирдорд╕реНрддреЗ, рдХреГрдкрдпрд╛ рдЗрди рдЭрдВрдбреЛрдВ рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, -Wl,--enable-new-dtags

рдиреБрд╕реНрдЦрд╛/рдХреНрдпреВрдЯреА рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛

go build github.com/therecipe/qt/core: invalid flag in #cgo CFLAGS: -pipe

рдЕрдиреБрдордд рдЭрдВрдбреЛрдВ рдореЗрдВ .*\.a рдЬреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рджреЗрдЦреЗрдВ https://github.com/golang/go/issues/23807

--mms-bitfields рднреА рдЖрд╡рд╢реНрдпрдХ рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдХрд▓рдХ (рдФрд░ рд▓рд┐рдВрдХрд░, рдЖрджрд┐) рд╡рд┐рдХрд▓реНрдк рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдЙрди рд╕рднреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЦрддрд░рдирд╛рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рд╕реИрдХрдбрд╝реЛрдВ рд╣реИрдВ рдФрд░ рд╢реНрд╡реЗрдд рд╕реВрдЪреА рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рдордЬрд╝рд╛ рдирд╣реАрдВ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ...

рдХреНрдпрд╛ рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛрдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрд╛рдЗрд▓рд░ (рдФрд░ рд▓рд┐рдВрдХрд░, рдЖрджрд┐) рд╡рд┐рдХрд▓реНрдк рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдЙрди рд╕рднреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЦрддрд░рдирд╛рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рд╕реИрдХрдбрд╝реЛрдВ рд╣реИрдВ рдФрд░ рд╢реНрд╡реЗрдд рд╕реВрдЪреА рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рдордЬрд╝рд╛ рдирд╣реАрдВ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ...

рдпрд╣ рд╢рд╛рдпрдж рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдкреИрдЪ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдмрд╛рдд рдорд┐рд▓реА: рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдЭрдВрдбреЗ рдХреЛ рдкрд╣рд▓реЗ рд╕рдВрдХрд▓рдХ рдкреНрд▓рдЧрдЗрди рдЫреЗрдж рдХреЛ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛, рдФрд░ 1.10 рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдкреНрд░рдгрд╛рд▓реА рд╕рдХреНрд╖рдо рдХреА рдЧрдИ рдереА, рдЬрд┐рд╕рдХреА рд╕реВрдЪреА рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рдереАред рдЖрд░рд╕реА рдХреЗ рджреМрд░рд╛рди рдКрдкрд░ рдХреБрдЫ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдирд╡реА рд╡рд░реНрд░реНрд╕ рдХрд╛рдлреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ 1.9.3 рдкрд░ рд╡рд╛рдкрд╕ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдХреВрд▓ рд╣реИред

рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдФрд░ рд░реЗрдЧреЗрдХреНрд╕ рд╕реЗ рднрд░реА рд╢реНрд╡реЗрддрд╕реВрдЪреА рднреЗрд╕ рдореЗрдВ рдХрд╛рд▓реА рд╕реВрдЪреА рдмрди рдЬрд╛рддреА рд╣реИ?

рдЧреЛрдореЛрдмрд╛рдЗрд▓ рдЭрдВрдбреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ -fobjc-arc -fmodules -fblocks:

https://github.com/golang/mobile/blob/5704e182c7003d4b7e94c23373f3fad4e5ceb25a/bind/genobjcw.go#L319

https://github.com/augustoroman/v8 -pthread рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

https://github.com/augustoroman/v8/blob/master/v8.go#L15

-рдлреНрд▓реЛрдЯреЛ

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ "рдЕрдиреБрдореЛрджрд┐рдд" рд▓реЛрдЧреЛрдВ рдХреА рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рдХреЛ рдЕрд╡рд▓реЛрдХрди рдХреЗ рд▓рд┐рдП рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЕрдЧрд▓рд╛ рдЕрдкрдбреЗрдЯ рд╕рдорд╛рдкреНрдд рди рд╣реЛ рдЬрд╛рдП? рдЬреЛ рдХреЛрдИ рднреА рд╕реАрдПрд▓ рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рднреА рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЕрднреА (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рд╣реИ) рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ рдХрд┐ рджрд░рд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрдпрд╛ рдлрд┐рд╕рд▓ рд░рд╣рд╛ рд╣реИ: рд▓реЛрдЧреЛрдВ рдиреЗ рдкрд╣рд▓реЗ рд╣рдорд╕реЗ рдкрд░рд╛рдорд░реНрд╢ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдХреМрди рд╕реЗ рдЭрдВрдбреЗ рд╣рдЯрд╛ рджрд┐рдП рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЧреБрдорд░рд╛рд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рд╕реАрдЬреАрдУ (рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЧреЛ) рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдФрд░ рдкреНрд░рддрд┐рдЧрдорди рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред :S (рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдкреИрдХреЗрдЬ рдХреЛ рдЧрд▓рдд рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ рд▓рд╛рдкрддрд╛ рдирд┐рд░реНрднрд░рддрд╛ xyz рд╣реИрдВ!)

рдХреБрдЫ "рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд" рд▓рд┐рдВрдХ рдЕрдзрд┐рдХ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯреЗрдб рдЭрдВрдбреЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдЕрднреА рддрдХ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдорд╛рд╕реНрдЯрд░ рд╕реВрдЪреА рд░рдЦрдиреЗ рдХреА рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЛрдЧ рдЕрднреА рднреА рд╕реНрдерд┐рд░ рд╕рдВрдЧреНрд░рд╣ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рд░рд╣реЗ рд╣реИрдВ...

рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЬреАрд╕реАрд╕реА рдФрд░ рдХреНрд▓реИрдВрдЧ рд╕реНрд╡рдпрдВ --no-unsafe-options рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдП) рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЧрдВрджрд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдмреА) рднрд╡рд┐рд╖реНрдп рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛ рд╣реЛ рдФрд░ рд╕реА) рджреВрд╕рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд┐рдХрд▓реНрдк (рдПрдХ рдмрд╛рд░ рдпрд╣ рд╡рд╣рд╛рдБ рд╣реИ, рдпрд╣ рд╡рд╣рд╛рдБ рд╣реИ, рдЕрд╡рдзрд┐)ред рдпрд╛ go get рдкрд╣рд▓реА рдФрд░ рдПрдХрдорд╛рддреНрд░ рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдпрджрд┐ рд╣рдо рд╢реНрд╡реЗрддрд╕реВрдЪреА рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрдирдкреБрдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рджреЗрд░реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред

рд╕рдВрдХрд▓рдХ рдЕрдкрдиреЗ рдЭрдВрдбреЗ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдКрдкрд░ рдХрд╣рд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЭрдВрдбреЗ рдПрдХ рдХрд╛рд░рдг рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВред

рдЙрдкрдпреЛрдЧ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдХреЗ рдирдореВрдирд╛рдХрд░рдг рдХрдо-рдкреНрд░рддрд┐рдирд┐рдзрд┐, рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрдЧрд╛, рдФрд░ рд╣рдо рд╕рднреА рдХреЗ рд▓рд┐рдП рджрд░реНрджрдирд╛рдХ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрд╕ рдзреНрд╡рдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЕрднреА рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирдореВрдирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЫрджреНрдо рдХреЛрдб рдореЗрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╢реНрд╡реЗрдд рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕реАрдзрд╛ рд▓рдЧрддрд╛ рд╣реИ:

рд╕рднреА рд╕реА/рд╕реА++ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдФрд░ рд╕рдорд░реНрдерд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдПрдВ;
рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрд╛рдЗрд▓рд░-рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдирдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕рднреА рдлрд╝реНрд▓реИрдЧреНрд╕ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ;
рдкреНрд░рддреНрдпреЗрдХ рдзреНрд╡рдЬ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдпрд╛ (рдЕрджреГрд╢реНрдп) рдХрд╛рд▓реА рд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдВред

рд╕рдВрдЪрд┐рдд рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдЭрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреЛрдб рдЬреЛрдбрд╝реЗрдВред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ (рдпрд╛ рджреЛ) рдХрдордЬреЛрд░ рдЭрдВрдбреЛрдВ рдХреЛ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╛рдЧрд▓ рд╣реИ (рд░рд┐рдбрдХреНрдЯрд┐рдпреЛ рдПрдб рдПрдмреНрд╕рд░реНрдбрдо рдкрд░ рдХрд╛рдо рдХрд░рдирд╛)ред рд▓реЗрдХрд┐рди рдкреВрд░реА рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдЕрдЧрд░ рд╣рдо рд╢реНрд╡реЗрддрд╕реВрдЪреА рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдкрд░реЛрдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕рд╣реА рд╣реИ, рдЕрдиреБрдорд╛рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рджреЗрд░реА рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕/рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗред

рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рд╡рд╣реА рд╡рд┐рдХрд▓реНрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ рдЬреЛ рдПрдХ .go рдлрд╝рд╛рдЗрд▓ рдореЗрдВ #cgo CFLAGS рдпрд╛ #cgo LDFLAGS рд▓рд╛рдЗрди рдкрд░ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИрдВ, рдпрд╛ рдХреЙрд▓ рд╕реЗ pkg-config --cflags рддрдХ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИрдВ pkg-config --libs ред рдпрд╣ рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдЙрдкрд╕рдореВрд╣ рд╣реИред

рдЖрдк рдпрд╣ рднреА рдмрд╣реБрдд рдХрдо рдЖрдВрдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬреАрд╕реАрд╕реА рдФрд░ рдХреНрд▓реИрдВрдЧ рдХреЗ рдкрд╛рд╕ рдХрд┐рддрдиреЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╡реЗ рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рднреА - рдЕрдЧрд░ рдХреБрдЫ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдРрд╕реЗ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд▓рдХреНрд╖реНрдп рдЯреНрд░рд┐рдкрд▓-рдЖрд╢реНрд░рд┐рдд рд╣реЛрдВ ... (рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рдЭрдВрдбреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╣рд┐рдд рд╕реВрдЪреА рдХреЛ рдЬреАрд╕реАрд╕реА рдФрд░ рдХреНрд▓реИрдВрдЧ рджреЗрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред)

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЭрдВрдбреЛрдВ рдХреЛ рдкреИрдЪ рдХрд░рдиреЗ рдореЗрдВ рд╣реБрдИ рджреЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ред

@anacrolix Over #23672 рдореЗрдВ рдЖрдкрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рд╣рдореЗрдВ -Wl,-framework рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди -framework рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд▓реЗрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рд╕рдЯреАрдХ рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рджред

рдЖрдк рдпрд╣ рднреА рдмрд╣реБрдд рдХрдо рдЖрдВрдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬреАрд╕реАрд╕реА рдФрд░ рдХреНрд▓реИрдВрдЧ рдХреЗ рдкрд╛рд╕ рдХрд┐рддрдиреЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ

@andlabs рдЗрдпрд╛рди рдПрдХ рдЬреАрд╕реАрд╕реА рдбреЗрд╡рд▓рдкрд░ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡рд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд╛рдХрд┐рдл рд╣реИред

рдмрджрд▓реЗрдВ https://golang.org/cl/93836 рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ: cmd/go: add options to security whitelist

рдореИрдВрдиреЗ рдПрдХ рд╕реАрдПрд▓ рднреЗрдЬрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ: https://golang.org/cl/93836ред

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдРрд╕реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рд▓реЛрдЧ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рджред

рдПрд▓рдПрд▓рд╡реАрдПрдо рдЧреЛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХрд░ рд╡рд┐рдХрд▓реНрдк рд╢реНрд╡реЗрдд рд╕реВрдЪреА рдореЗрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

  • -Wl,-search_paths_first
  • -Wl,-headerpad_max_install_names

рд▓рд┐рдВрдХрд░ рд╡рд┐рдХрд▓реНрдк рдХрдорд╛рдВрдб llvm-config --ldflags рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред

рд░реЗрдлрд░реА: https://reviews.llvm.org/D43070

@magical рдореИрдВ @glycerine рдХрд╛ рдЬрд╡рд╛рдм рдерд╛ рдкреА рд╡рд╣рд╛рдБ =

@ianlancetaylor рднреА рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬрд▓реНрджреА рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

@andlabs рдЖрд╣, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ

@ianlancetaylor рдЙрд╕ рд╕реАрдПрд▓ рдХреЗ рд╕рд╛рде рдореИрдВ рдЕрднреА рднреА рд╕реЛрд▓рд╛рд░рд┐рд╕ рдХреЗ рд▓рд┐рдП golang.org/x/net/internal/socket рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ред рддреНрд░реБрдЯрд┐ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреМрди рд╕реЗ рдЭрдВрдбреЗ рдкреВрдЫрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред

$ ./bin/go version
go version devel +09dc376990 Tue Feb 13 20:58:04 2018 -0800 darwin/amd64
$ GOOS=solaris ./bin/go get -u golang.org/x/net/ipv4
# golang.org/x/net/internal/socket
../../ext/src/golang.org/x/net/internal/socket/sys_solaris.go:24:3: //go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" only allowed in cgo-generated code
../../ext/src/golang.org/x/net/internal/socket/sys_solaris.go:25:3: //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" only allowed in cgo-generated code
../../ext/src/golang.org/x/net/internal/socket/sys_solaris.go:26:3: //go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so" only allowed in cgo-generated code
../../ext/src/golang.org/x/net/internal/socket/sys_solaris.go:27:3: //go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so" only allowed in cgo-generated code

@ рд╢рд╛рдВрдд рд╣рд╛рдБред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕реЗ golang.org/x/net рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдЖрдВрддрд░рд┐рдХ рд╡рд┐рд╡рд░рдгреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

@calmh рдХреНрдпрд╛ рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реЛрд▓рд╛рд░рд┐рд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ https://golang.org/cl/94015 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рдкрд╛рдПрдВрдЧреЗ?

рдмрджрд▓реЗрдВ https://golang.org/cl/94015 рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ: internal/socket: rework Solaris reliance on syscall package

@rsc @ianlancetaylor @anacrolix рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ -Wl,-framework рдХрд╣рд╛рдБ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ: рдпрд╣ GLib рдХреЗ рд▓рд┐рдП pkg-config рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ, рдЬреЛ GTK+ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕рдореЗрдВ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП CoreFoundation рд▓рд┐рдВрдХ рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрдн: https://gitlab.gnome.org/GNOME/glib/blob/master/glib-2.0.pc.in#L14 рдЬрд╣рд╛рдВ @INTLLIBS@ -Wl,-framework -Wl,CoreFoundation рдХреЛ https://gitlab рд╕реЗ -Wl,-framework -Wl,CoreFoundation рдорд┐рд▓рддрд╛ рд╣реИ .gnome.org/GNOME/glib/blob/master/m4macros/glib-gettext.m4#L143

рдХрдИ рдЕрдиреНрдп рдкреАрдХреЗрдЬреА-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрдиреНрдп -Wl,-framework рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ; рдХреБрдЫ рд╕реНрд╡рдпрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ (рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ), рдФрд░ рдХреБрдЫ рд╣реЛрдордмреНрд░реВ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рджрд┐рдП рдЧрдП рд╣реИрдВред рдЕрднреА рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдореБрдЭреЗ libcdio рдФрд░ SDL рджреЛрдиреЛрдВ -Wl,-framework,FrameworkName ред (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ, рд╣рд╛рдБ, -Wl,-framework -Wl,FrameworkName рдФрд░ -Wl,-framework,FrameworkName рджреЛрдиреЛрдВ pkg-config рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЬрд╛рдУ рдЖрдВрдХрдбрд╝рд╛ред)

рдмрджрд▓реЗрдВ https://golang.org/cl/94018 рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ: cmd/compile: permit go:cgo_import_dynamic anywhere

@calmh https://golang.org/cl/94018 рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ

@andlabs рдзрдиреНрдпрд╡рд╛рдж, рд╕реАрдПрд▓ 93836 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рдореИрдВ рд╕реНрдерд┐рд░ рд▓рд┐рдВрдХрд┐рдВрдЧ рдПрд╕рдбреАрдПрд▓ рд╣реВрдВ рдФрд░ pgkconfig рдореЗрдВ -Wl,--no-undefined рд╕рд╛рде-рд╕рд╛рде рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред

рдореБрдЭреЗ рдЖрдкрдХреЛ рд╕рдлреЗрдж рд╕реВрдЪреА рдХреЗ рдиреАрдЪреЗ рдЭрдВрдбреЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рддрд╛рдХрд┐ рд╡реЗ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХреЗрдВ рдЬреЛ cgoemitter рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

рдЧреЛ рдмрд┐рд▓реНрдб github.com/supermock/cgoemitter-demo/x: #cgo LDFLAGS рдореЗрдВ рдЕрдорд╛рдиреНрдп рдзреНрд╡рдЬ: -Wl,-unresolved-symbols=ignore-all

рдЕрдЧреНрд░рд┐рдо рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

рд╕реАрдПрд▓ рдлрд┐рд░ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

рдореИрдВрдиреЗ https://golang.org/wiki/InvalidFlag рдкрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХреА рдкреГрд╖реНрда рдЬреЛрдбрд╝рд╛ рд╣реИ, рдФрд░ рдореИрдВ CL рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХреА рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░реЗред

рдмрджрд▓реЗрдВ https://golang.org/cl/94158 рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ: doc: add note about invalid flag errors to 1.10 release notes

invalid flag in #cgo LDFLAGS: -O3

рдмрджрд▓реЗрдВ https://golang.org/cl/94655 рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ: [release-branch.go1.10] doc: add note about invalid flag errors to 1.10 release notes

рдмрджрд▓реЗрдВ https://golang.org/cl/94675 рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ: [release-branch.go1.10] cmd/compile: permit go:cgo_import_dynamic anywhere

рдмрджрд▓реЗрдВ https://golang.org/cl/94676 рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ: [release-branch.go1.10] cmd/go: add options to security whitelist

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднреА рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИ, рдпрджрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

go build github.com/andlabs/ui: invalid flag in #cgo LDFLAGS: -mmacosx-version-min=10.8

@ bgk- рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреИрдЪ рдЙрд╕ рдкрддреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ 1.10 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЕрднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛрдЧреА рдХрд┐ рдХреНрдпрд╛ 1.9.5 рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ 1.10 рдХреЛ invalid pkg-config package name: --static рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛? рдореИрдВрдиреЗ рдЕрднреА рд╣реЛрдордмреНрд░реЗ рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдХрд╛рд▓рд╛ рд╣реИ рдФрд░ рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ:

тЮЬ  ~ go version
go version go1.10 darwin/amd64
... 
тЮЬ  ~ go build
...
go build github.com/flier/gohs/hyperscan: invalid pkg-config package name: --static

@ptoomey3 рджреЗрдЦреЗрдВ #23875

1.9.5 рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ред

рдореИрдВ XY рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪреВрдВрдЧрд╛ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ -buildmode=c-shared рд╕рд╛рде рдПрдХ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реНрдХреНрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реНрдХреНрд▓ рдХреЗ рд▓рд┐рдП рд╕реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдпрд╣ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИ:

cc -fPIC -c foo.c
cc -shared -o foo.so foo.o

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ #cgo LDFLAGS: -shared рдЬреЛрдбрд╝рд╛ рд╣реИред рдЗрд╕рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ (go1.10) рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрдм рдЗрд╕рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдмрдВрдж рд╣реЛ рдЧрдпрд╛:

invalid flag in #cgo LDFLAGS: -shared

рдмрд╕ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛ 1.10 рдЬрд╛рдУ, рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛:

invalid flag in #cgo LDFLAGS: -Wl,-static

рд▓рд┐рдВрдХ рд▓рд╛рдЗрди рдкрд░ рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЬреАрд╕реАрд╕реА рд▓рд┐рдВрдХрд░ рдзреНрд╡рдЬ рд╣реИред

@spackard рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИред рдЖрдк -Bstatic рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред -static рд╡рд┐рдХрд▓реНрдк рд▓рд┐рдВрдХрд░ рдХреЛ рдХрд┐рд╕реА рднреА -l рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЦреЛрдЬ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИред -static рдПрдХ рд╕реНрдерд┐рддрд┐рдЧрдд рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ; рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХрд╣рд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

@ianlancetaylor рдЖрдк рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рд╣рдо рд╕реНрдерд┐рд░ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЛ рдордЬрдмреВрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ CGO_LDFLAGS_ALLOW рдЬреЛрдбрд╝рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ

invalid flag in #cgo CFLAGS: -m32

рд╣рдордиреЗ рдЗрд╕реЗ -O3, -static-libgcc рдФрд░ -static-libstdc++ . рдХреЗ рд╕рд╛рде рдорд╛рд░рд╛

-рдУ3:

cgo windows LDFLAGS: -O3 -L./ -lmass -static-libgcc -static-libstdc++

cgo linux LDFLAGS: -O3 -L./ -lmass -ldl -lm -lrt -static-libgcc -static-libstdc++

рд╕реАрдЬреАрдУ CFLAGS: -O3

#cgo LDFLAGS рдореЗрдВ рдЕрдорд╛рдиреНрдп рдзреНрд╡рдЬ: -O3

-рд╕реНрдереИрддрд┐рдХ-libgcc:

cgo windows LDFLAGS: -L./ -lmass -static-libgcc -static-libstdc++

cgo linux LDFLAGS: -L./ -lmass -ldl -lm -lrt -static-libgcc -static-libstdc++

#cgo LDFLAGS рдореЗрдВ рдЕрдорд╛рдиреНрдп рдзреНрд╡рдЬ: -рд╕реНрдереИрддрд┐рдХ-libgcc

-рд╕реНрдереИрддрд┐рдХ-libstdc++:

cgo windows LDFLAGS: -L./ -lmass -static-libstdc++

cgo linux LDFLAGS: -L./ -lmass -ldl -lm -lrt -static-libstdc++

#cgo LDFLAGS рдореЗрдВ рдЕрдорд╛рдиреНрдп рдзреНрд╡рдЬ: -рд╕реНрдереИрддрд┐рдХ-libstdc++

рд╣рд╛рд░реНрдбрдХреЛрдбреЗрдб рд╕реНрдерд┐рд░ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ

$GOROOT/bin/cgo.cfg
[рд╢реНрд╡реЗрддрд╕реВрдЪреА]
рдмреНрд▓рдмреНрд▓рдмреНрд▓рд╛
...

рддреЛ рд╣рдо рдХреБрдЫ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@kruglinski рдЖрдк CGO_CFLAGS_ALLOW рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдФрд░ рджреЛрд╕реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@ianlancetaylor

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рдХрд┐рдпрд╛, :-) рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛, рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╕реЛрдЪрддреЗ рд╣реИрдВ!

24124 рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХрд░ рд╡рд┐рдХрд▓реНрдк рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ:

-Wl,-z,relro

рд▓рд┐рдВрдХрд░ рд╡рд┐рдХрд▓реНрдк -Wl,--subsystem,windows рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк -mwindows рджреЛрдиреЛрдВ рдЧрд╛рдпрдм рд╣реИрдВред

рдореИрдВ рдЧреЛрдореЛрдмрд╛рдЗрд▓/рдЧреЛрдмрд┐рдВрдж рдХреЛ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЙрд╕ рдХрд╛рдо рдореЗрдВ рд╕реЗ рдХреБрдЫ рдореЗрдВ CGO_*FLAGS рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ #cgo рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдХреБрдЫ рдФрд░ рдЭрдВрдбреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛:

````
-рдЗрд╕рд┐рд╕рд░реВрдЯ(рдЖрдИрдУрдПрд╕)
-рдорд┐рдпреЛрд╕-рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░-рд╕рдВрд╕реНрдХрд░рдг-рдорд┐рдирдЯ =(рдЖрдИрдУрдПрд╕)
-miphoneos-рд╕рдВрд╕реНрдХрд░рдг-рдорд┐рдирдЯ=(рдЖрдИрдУрдПрд╕)

-рд▓рдХреНрд╖реНрдп(рдПрдВрдбреНрд░реЙрдпрдб рдХреЗ рд▓рд┐рдП)
--рд╕рд┐рд╕рд░реВрдЯ(рдПрдВрдбреНрд░реЙрдпрдб рдХреЗ рд▓рд┐рдП)
-рдЬреАрд╕реАрд╕реА-рдЯреВрд▓рдЪреЗрди(рдПрдВрдбреНрд░реЙрдпрдб рдХреЗ рд▓рд┐рдП)
````

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо, -gcc-toolchain рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВред

рдореИрдХреЛрдЬрд╝ рдкрд░ CGO_LDFLAGS_ALLOW рдмрд┐рдирд╛ рдЧреЛрдбреЛрдЯ рдЧреЗрдо рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЧреЛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЭрдВрдбреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

-Wl,-undefined,dynamic_lookup

рдЕрдзрд┐рдХ CFLAGS zchee/libhyperkit рд╕реЗ :

  • -fmessage-length=152
  • -fdiagnostics-show-note-include-stack
  • -fmacro-backtrace-limit=0

v8worker рдХреЛ Mac OS X рдкрд░ -stdlib=libstdc++ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕реАрдПрд▓ 103156 рдЧреЛ рдХреЗ рд▓рд┐рдП рдареАрдХ 1.9.5

рдмрджрд▓реЗрдВ https://golang.org/cl/103135 рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ: [release-branch.go1.9] cmd/go: add options to security whitelist

рдореИрдВ рдЗрд╕реЗ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрд╛, рдХреНрдпрд╛ libtool рдХреЛ рднреА рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

invalid flag in #cgo LDFLAGS: -I/usr/local/share/libtool

@PassKit -I рдПрдХ cflag рд╣реИ (рдЬреЛ рд╕реВрдЪреА рдореЗрдВ рд╣реИ) ldflag рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЗрд╕реЗ ldflags рдореЗрдВ рдХреНрдпреЛрдВ рдбрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ?

рдЕрдзрд┐рдХ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдЕрдиреБрд░реЛрдз рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ред

#24703 . рд╕реЗ

CFLAGS: -fno-plt

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрдп рдХрд░рдирд╛ рдареАрдХ рд╣реИ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ 1.9 рдФрд░ 1.10 рд░рд┐рд▓реАрдЬ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдХреБрдЫ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрднреА рддрдХ рдЗрд╕рдХреА рд╕реВрдЪрдирд╛ рдирд╣реАрдВ рджреА рдЧрдИ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рд╣рд░ рд░реИрдВрдбрдо рд╡рд┐рдХрд▓реНрдк рдХреЛ рдмреИрдХрдкреЛрд░реНрдЯ рдХрд░рддреЗ рд░рд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ 1.11 рдХреЗ рд▓рд┐рдП рдЯрд┐рдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЪрд╛рд╣реЗ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯреНрд░реИрдХ рдХрд░реЗрдВ рдпрд╛ рдХрд╣реАрдВ рдФрд░, рдореБрдЭреЗ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред

рдПрд╕рдЬреАрдЯреАрдПрдо

@AlexRouSg рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдереА, рдЬрд┐рд╕рдиреЗ "-I" рдХреЛ рдПрдХ ldflag рдХреЗ рд░реВрдк рдореЗрдВ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА, рдЬрд┐рд╕реЗ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред https://github.com/miekg/pkcs11/issues/63

рджреЗрд░ рд╕реЗ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрдиреНрд╣реЗрдВ 1.9.5 рдпрд╛ 1.10.2 . рдореЗрдВ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рдП

CXXFLAGS: -F/Users/user/Qt/5.10.1/clang_64/lib
CFLAGS: --sysroot=/Users/user/android-ndk-r14b/sysroot
CFLAGS: -mfloat-abi=softfp
CFLAGS: -fno-builtin-memmove
CFLAGS: -mthumb
CFLAGS: -fobjc-nonfragile-abi
CFLAGS: -fobjc-legacy-dispatch
CFLAGS: -fno-keep-inline-dllexport
CXXFLAGS: -mthreads
CFLAGS: -Wp,-D_FORTIFY_SOURCE=2
CFLAGS: --param=ssp-buffer-size=4
CFLAGS: -mfloat-abi=hard
CFLAGS: -fvisibility-inlines-hidden
CFLAGS: -mfpmath=sse
CFLAGS: -fasynchronous-unwind-tables
CFLAGS: -feliminate-unused-debug-types
CFLAGS: -marm
CFLAGS: -mabi=aapcs-linux
CFLAGS: -mthumb-interwork

рддрдерд╛

LDFLAGS: -headerpad_max_install_names
LDFLAGS: -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk
LDFLAGS: -Wl,-rpath,@executable_path/Frameworks
LDFLAGS: --sysroot=/Users/user/android-ndk-r14b/platforms/android-16/arch-arm/
LDFLAGS: -Wl,-rpath-link=/Users/user/Qt/5.10.1/android_armv7/lib
LDFLAGS: -Wl,--allow-shlib-undefined
LDFLAGS: -Wl,-e,_qt_main_wrapper
LDFLAGS: -Wl,-O1
LDFLAGS: -Wl,-rpath-link,/opt/Qt/5.10.0/gcc_64/lib
LDFLAGS: -Wl,-s
LDFLAGS: -Wl,-subsystem,console
LDFLAGS: -mthreads
LDFLAGS: -rdynamic
LDFLAGS: -mfloat-abi=hard

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

@therecipe рд╣рдо рдЙрдиреНрд╣реЗрдВ 1.11 рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди 1.9.5 рдпрд╛ 1.10.2 рдХреЗ рд▓рд┐рдП: рдЗрдиреНрд╣реЗрдВ рдХрд┐рд╕ рдкреИрдХреЗрдЬ (рдкреИрдХреЗрдЬреЛрдВ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

@ianlancetaylor рд╡реЗ рд╕рднреА https://github.com/therecipe/qt . рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ
рдпрджрд┐ рдЖрдк рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓реЗрдВрдЧреЗ рддреЛ рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдореБрдЭреЗ рдХрд┐рд╕рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдирдХрд╛ рдЕрдкрдирд╛ рдХреНрдпреВрдЯреА рдкреИрдХреЗрдЬ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкреБрд░рд╛рдирд╛ рд╣реИ; рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ (рдХрд┐рд╕реА рдФрд░ рдХреЛ рдХрд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред

рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:

  • рдХреНрдпрд╛ LDFLAGS рд╕реЗ рдХреБрдЫ -Wl, рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд┐рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ?
  • рдХреНрдпрд╛ рдЧреЛ рдореЗрдВ -e рдХрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ?
  • рдХреНрдпрд╛ -F рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рдерд╛? рдпрд╣ рд╡рд╣ рд╡рд┐рдХрд▓реНрдк рдирд┐рдХрд▓рд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣рд╛ рдерд╛ред
  • (@Therecipe рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХреНрдпреЛрдВ рдЖрдк рдПрдХ рдХреА рд░рдЦрд╡рд╛рд▓реА рдХрд░ рд░рд╣реЗ рд╣реИрдВ -D рдПрдХ рд╕рд╛рде -Wp ? рдХреНрдпрд╛ рдореИрдХреНрд░реЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ? рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣рд╛рдБ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рд╡реВрдбреВ Qt рд╣реИ... рдпрд╛ рдпрд╣ Qt рджреНрд╡рд╛рд░рд╛ рд╣реА рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕реВрдЪреА рд╣реИ?
  • (@ianlancetaylor рдХреЗ рд▓рд┐рдП) рдореИрдВ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдирдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ 1.9 рдкрд░ рдмреИрдХрдкреЛрд░реНрдЯрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ (рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рджреНрд╡рд┐рдкрдХреНрд╖реАрдп рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЧреЛ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрдпреЛрдЧ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди 1.10 рд╕реЗ 1.12 рддрдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
  • рдЙрдкрд░реНрдпреБрдХреНрдд рдХреЗ рдЙрддреНрддрд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рд╕реВрдЪреАрдмрджреНрдз рдПрдЖрд░рдПрдо рдПрдмреАрдЖрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдмреИрдХрдкреЛрд░реНрдЯрд┐рдВрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВ ...

@andlabs рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╣рдореЗрдВ рдХрднреА рд░реБрдХрдирд╛ рд╣реИ, рддреЛ рдХреНрдпреЛрдВ рди рдЕрднреА

@andlabs рд╣рд╛рдВ, рд╡реЗ рд╕рднреА рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЭрдВрдбреЗ рд╣реИрдВред рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рднреА рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ред
-Wp,-D_FORTIFY_SOURCE=2 рд╕реЗрд▓рдлрд┐рд╢ рд▓рдХреНрд╖реНрдп рдЖрдИрдЖрдИрдЖрд░рд╕реА рд╕реЗ рдерд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ред

@ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреНрдпреВрдЯреА рдФрд░ рд╕реЗрд▓рдлрд┐рд╢ рдЙрди рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рдХрд╣рд╛рдВ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА, рдХреНрдпрд╛ рдХреЛрдИ рд╡реЗрдм рдкреЗрдЬ рдпрд╛ рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рджреЗрддрд╛ рд╣реИ)? рдореИрдВ рдЕрдм рдЙрддреНрд╕реБрдХ рд╣реВрдБред

рдЗрд╕ рдмреАрдЪ, рдЬрдмрдХрд┐ рдЙрд╕ рд╕реВрдЪреА рдХреЛ рдЧреЛ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рдЕрдм рднреА рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк -Wl, рдЙрдкрд╕рд░реНрдЧ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреА рдХрд┐рддрдиреА LDFLAGS рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ; рдХреЛрд╢рд┐рд╢ рдХрд░реЛ рдФрд░ рджреЗрдЦреЛ? рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА -Wp, рдПрдХ рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ CFLAGS ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдкреНрд░рддрд┐рдХреВрд▓ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ LDFLAGS рдХреЗ рд▓рд┐рдП рдпрд╣реА рд╣реИ... (рдЖрдкрдХреЛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рднреА рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдпреЗ -Wx, рд╡рд┐рдХрд▓реНрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдЬреАрд╕реАрд╕реА рдФрд░ рдХреНрд▓реИрдВрдЧ рдХреЛ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реАрдзреЗ рд▓рд┐рдВрдХрд░ (рдпрд╛ рдЕрд╕реЗрдВрдмрд▓рд░ рдпрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░) рдХреЛ рд╕реНрд╡рдпрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ; рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рддреЛ рд╡рд┐рдЪрд╛рд░ рдУрдПрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдЕрднреА рддрдХ рдЬреАрд╕реАрд╕реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рдмрдЬрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ ...)

@andlabs рд╣рд╛рдБ, рдХреНрдпреВрдЯреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг qmake рд╕реЗ рдПрдХ *.pro , *.spec (mkspec), *.conf рдФрд░ рдирд┐рдпрдорд┐рдд рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдХреБрдЫ рдбрдореА *.pro рдлрд╛рдЗрд▓реЗрдВ рдЦрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕ рд╕реЗ рдЭрдВрдбреЗ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реВрдВред рдЗрд╕ рддрд░рд╣, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕реНрд╡рдпрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреГрддреАрдп-рдкрдХреНрд╖ libs рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ, рдореБрдЭреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реА рдпрд╛ рдПрд▓рдбреА рдЭрдВрдбреЗ рдФрд░ рдЕрд╡рд╛рдВрдЫрд┐рдд рд▓рдХреНрд╖реНрдп рдпрд╛ рдХреНрдпреВрдЯреА рдХрд╛рдо рдХреЗ рдирдП/рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ред рдореБрдЭреЗ рдХрднреА-рдХрднреА рдХреБрдЫ рдЭрдВрдбреЛрдВ рдХреЛ рдХрд╛рд▓реА рд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдмрд╣реБрдд рдХрдо рд╣реЛрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рд╕реЗрд▓рдлрд┐рд╢ mkspec рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ -Wp,-D_FORTIFY_SOURCE=2 рдореЗрдВ рдЦреАрдВрдЪрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЗрд╕реЗ mersdk рдореЗрдВ рдХрд╣реАрдВ рджрдлрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП TQtC рд╕рдорд░реНрдерди рд░рдЦрддрд╛ рд╣реИ: https://github.com/qt/qtbase/tree/5.11/mkspecs рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рджрд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдмреАрдЪ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ (рдЬреЛ go рд▓рдкреЗрдЯрддрд╛ рд╣реИ) рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдореЗрдВ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдирд┐рдпрдорд┐рдд рдЧреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рд╕рд┐рд░реНрдл go build ... рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рдЙрдард╛рдПрдЧрд╛ .. (рдХрдо рд╕реЗ рдХрдо рдбреЗрд╕реНрдХрдЯреЙрдк рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП)

-рдлрдлрд╛рд╕реНрдЯ-рдЧрдгрд┐рдд

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрд╕рдПрдкреА рд╣рд╛рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдбреНрд░рд╛рдЗрд╡рд░ (рд╕реАрдЬреАрдУ рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп) #cgo LDFLAGS: -Wl,-rpath -Wl,\$ORIGIN рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк go build SAP/go-hdb/driver: invalid flag in #cgo LDFLAGS: -Wl,-rpath ред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП https://help.sap.com/viewer/0eec0d68141541d1b07893a39944924e/2.0.03/en-US/fba20e31f75c4f7ca5629083869069e5.html?q=golang%20driver рдкрд░ рднреА рджреЗрдЦреЗрдВред

@cbgo #

рдХреЛрдб рдЬреЛ рд▓рд┐рдВрдХрд░ рдХреЛ рдзреНрд╡рдЬ рдФрд░ рддрд░реНрдХ рдЬреЛрдбрд╝реА рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рдЕрдм рджреЛ рдХреЗ рдмрдЬрд╛рдп рдПрдХ -Wl рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: #cgo LDFLAGS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: -Wl,-rpath,$ORIGIN, #cgo LDFLAGS рдирд╣реАрдВ: -Wl,-rpath -Wl,$ рдореВрд▓ред

@AlexRouSg рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЗрд╕реЗ рдФрд░ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ :-)

@PassKit рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛?

@ zcm211 рдпрджрд┐ рдЖрдк https://github.com/miekg/pkcs11 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдлрд░рд╡рд░реА рдореЗрдВ -I... рд▓рд┐рдВрдХрд░ рдзреНрд╡рдЬ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ CGO_LDFLAGS_ALLOW="-I.*"

рдбрд╛рд░реНрд╡рд┐рди 64-рдмрд┐рдЯ, go1.10.2, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ .o рдлрд╛рдЗрд▓реЗрдВ LDFLAGs рдХреЗ рд▓рд┐рдП рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ:
~jaten@jatens-MacBook-Pro ~/go/src/github.com/go-interpreter/chezgo (рдорд╛рд╕реНрдЯрд░) $ рдореЗрдХ рд░рдирд╕реАрдбреА chez_scheme_9.5.1/рд╕реА;








https://github.com/go-interpreter/chezgo/blob/master/embed.go#L10 рдореЗрдВ cgo рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдХреЗ рдХрд╛рд░рдг
~~~

cgo LDFLAGS: -liconv -lm -lncurses -L/usr/local/lib ./chez_scheme_9.5.1/boot/a6osx/kernel.o

~~~

@рдЧреНрд▓рд┐рд╕рд░реАрди https://go-review.googlesource.com/c/go/+/94676 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реЗ рд╣реИрдВред рд╢рд╛рдпрдж рдПрдХ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреВрд░реНрдг рдкрде рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ?

рдЕрдЪреНрдЫрд╛ рдкрдХрдбрд╝ @AlexRouSg , рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрд╡реАрдХрд╛рд░ рд░реЗрдЧреЗрдХреНрд╕ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИ;
~re( [a-zA-Z0-9_/].*\.(a|o|obj|dll|dylib|so) ), // рдбрд╛рдпрд░реЗрдХреНрдЯ рд▓рд┐рдВрдХрд░ рдЗрдирдкреБрдЯ: xo рдпрд╛ libfoo.so (рд▓реЗрдХрд┐рди -foo.o рдпрд╛ @foo.o рдирд╣реАрдВ)~
src/cmd/go/internal/work/security.go#121 рдХреЛ .o рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╛рдкреЗрдХреНрд╖ рдкрдереЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП . рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

рдЖрдЦрд┐рд░рдХрд╛рд░, рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ GOPATH рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдпрд╛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕реНрдерд╛рди рдХреИрд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдкрде рд╕реЗрдЯ рдХрд░рдирд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реИред

рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ .o рдлрд╝рд╛рдЗрд▓ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЬрд┐рдХреНрд░ рд╡рд╣ рд╣реИ рдЬреЛ ${SRCDIR} рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред (рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреНрдпреЛрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдерд╛ред)

@andlabs рднрд▓реЗ рд╣реА рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдмрдЧ рд╣реИред

рдпрд╣ рд╣реИ, рдЖрдИрдЖрдИрдЖрд░рд╕реА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрдЧрд╛ (рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ $WORK , рдФрд░ рдлрд┐рд░ рдЖрдкрдХрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдлрд┐рд░ рд╕реЗ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ) ... рдлрд┐рд░ рд╕реЗ, рдореИрдВ рднреВрд▓ рдЧрдпрд╛ рд╣реВрдБ рдЗрддрд┐рд╣рд╛рд╕; рдХрд┐рд╕реА рдФрд░ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

gtk4 -mfpmath=sse . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

@ianlancetaylor cflags рдФрд░ ldflags рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╢реНрд╡реЗрддрд╕реВрдЪреА рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреНрдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╕реВрдЪреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП? рдЬреАрд╕реАрд╕реА/рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдПрд▓рдбреАрдлреНрд▓реИрдЧ рдХреЛ рд╕реАрдлреНрд▓реИрдЧ рдореЗрдВ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА C рджреЗрд╡ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ #25493 рдпрд╛ https://github.com/golang/go/issues/23749#issuecomment -379969818 рдЬреИрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред

рдЖрд╣, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЯрд┐рдХрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкреНрд░реЛрдЯреЛрдмрдл рд╕реЗ "-D_THREAD_SAFE" рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ #25493 рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ

рдмрджрд▓реЗрдВ https://golang.org/cl/115415 рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ: cmd/go: accept more safe CFLAGS/LDFLAGS

рдмрджрд▓реЗрдВ https://golang.org/cl/115435 рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ: [release-branch.go1.10] cmd/go: accept more safe CFLAGS/LDFLAGS

рдмрджрд▓реЗрдВ https://golang.org/cl/115436 рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ: [release-branch.go1.9] cmd/go: accept more safe CFLAGS/LDFLAGS

рд╣реЗ рд▓реЛрдЧреЛрдВ,
рдЬрдм рд╣рдо 9/4/2018 рддрдХ рдЧреЛ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде bimg рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреНрдпреЛрдВ рдмрдВрдж рд╣реЛ рдЧрдИ рд╣реИ?
рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреЗрдВ: https://github.com/h2non/bimg/issues/230
рд╣рдо рдЧреЛ 1.10 рд╕реЗ bimg рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рдЪреАрдЬрд╝ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдЧреЛ 1.11 . рдореЗрдВ рдмрдиреА рд╣реБрдИ рд╣реИ
рд╣рдореЗрдВ рдЬреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ:

# go build
go build gopkg.in/h2non/bimg.v1: invalid flag in pkg-config --libs: -Wl,--export-dynamic

рдХреЛрдИ рд╕рд▓рд╛рд╣?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдпрд╛: https://github.com/golang/go/issues/27496

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ: https://github.com/alexflint/gallium/issues/63

@alexflint рдпрд╣ рдореБрджреНрджрд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдмрдирд╛рдПрдВ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bbodenmiller picture bbodenmiller  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

michaelsafyan picture michaelsafyan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ajstarks picture ajstarks  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gopherbot picture gopherbot  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

go101 picture go101  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ