Size: a a a

2020 February 17

ПК

Паша Калугин in Go-go!
У меня такой докерфайл получается
источник

а

а кто это in Go-go!
Паша Калугин
А что такое CGO?
источник

DP

Daniel Podolsky in Go-go!
Паша Калугин
А что такое CGO?
в гугл
источник

@

@mr_tron in Go-go!
а кто это
у меня без всего этого собирался и собирает бинарь на альпине который спокойно запускается в скратче
user@userbook:~$ go build -o /tmp/main /tmp/main.go
user@userbook:~$ ldd /tmp/main
 linux-vdso.so.1 (0x00007ffcc8743000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbef5923000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbef5732000)
 /lib64/ld-linux-x86-64.so.2 (0x00007fbef5964000)
источник

VL

Vitaliy Levchenko in Go-go!
Daniel Podolsky
я не изучал вопрос подробно, но кое-какие операции реально вызывают к жизни линковку libc

когда я последний раз смотрел на это удивленно - там еще и не динамическая линковка была стандартная, ldd ничего не показывал, а был в коде поиск libc и загрузка
прикольно: похоже под mac os стандартными средствами не скомпилировать бинарник без libc. Просто потому что clang не умеет -static
источник

ПК

Паша Калугин in Go-go!
@mr_tron
user@userbook:~$ go build -o /tmp/main /tmp/main.go
user@userbook:~$ ldd /tmp/main
 linux-vdso.so.1 (0x00007ffcc8743000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbef5923000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbef5732000)
 /lib64/ld-linux-x86-64.so.2 (0x00007fbef5964000)
file /tmp/main.go сделай пожалуйста
источник

@

@mr_tron in Go-go!
file /tmp/main.go
/tmp/main.go: C source, ASCII text
источник

@

@mr_tron in Go-go!
package main

import (
"time"
"fmt"
"net/http"
)


func main() {
http.Get("https://example.com/")
fmt.Println("ololo")
time.Sleep(time.Minute)

}
источник

ПК

Паша Калугин in Go-go!
@mr_tron
file /tmp/main.go
/tmp/main.go: C source, ASCII text
Ой, извини, file /tmp/main конечно же
источник

@

@mr_tron in Go-go!
$ file /tmp/main
/tmp/main: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, Go BuildID=D20-dAjnHxBmVTY4kFtT/BLWH68xwxpd86-Mv4-KP/2g4A7uppvWmBv5DBVljM/r6BbjEz9SvR8rFiw5h9H, not stripped
источник

@

@mr_tron in Go-go!
если убрать http.Get то результат будет другой
источник

ПК

Паша Калугин in Go-go!
Ну звучит как dynamically linked
источник

@

@mr_tron in Go-go!
file /tmp/main
/tmp/main: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=yhue0eMGiHGXkLGbd-EZ/xJu1gyowYSQ-NWGlT61T/apmC6aZqbWV2hDQIEiDo/U-C1Woz8VIhOVN8AZ2PC, not stripped
источник

@

@mr_tron in Go-go!
потомучто по-умолчанию сеть использует биндинг к сишным либам
источник

@

@mr_tron in Go-go!
например для резолва dns емнип
источник

ПК

Паша Калугин in Go-go!
Эээ, что, зачем резолву dns динамик линкинг?
источник

а

а кто это in Go-go!
@mr_tron
user@userbook:~$ go build -o /tmp/main /tmp/main.go
user@userbook:~$ ldd /tmp/main
 linux-vdso.so.1 (0x00007ffcc8743000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbef5923000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbef5732000)
 /lib64/ld-linux-x86-64.so.2 (0x00007fbef5964000)
tdakkota@tdakkota-pc:~$ export CGO_ENABLED=0; go build example.go; ldd example
       not a dynamic executable
источник

а

а кто это in Go-go!
example.go — стандартный код с плейграунда
источник

@

@mr_tron in Go-go!
Паша Калугин
Эээ, что, зачем резолву dns динамик линкинг?
для вызова гетхостбайнейм?
источник

@

@mr_tron in Go-go!
или чё там счас модно
источник