|
ru.unix
- RU.UNIX ----------------------------------------------------------------------
From : yx 2:5020/400 19 Mar 2001 13:06:31
To : All
Subject : Re: FreeBSD size of C prg: Hello,World
--------------------------------------------------------------------------------
Oleg.Polianski@clear.co.nz wrote:
>
>> Простите, но точку входа я могу написать свою. Минимальную. Которая будет
>> звать main(0,{""}). Почему эта программа не будет программой на языке *C*?
>
> а "точку входа" вы тоже на C писать будете? про курицу и яйцо сами
> вспомните?
>
>> Или gcc не позволяет указать custom entry point? Позволяет.
>
> gcc? нет, не позволяет.
1) gcc не компилятор (верней не только).
2) gcc - позволяет (позволяет передать кому надо точку входа).
можно так:
% cat start1.c
#define MESG "Hello, World!\n"
#define MESG_SZ sizeof(MESG)
main() {
long re;
__asm__ volatile (
"int $0x80": "=a"(re): "0"(4), "b"(1), "c"((long)MESG), "d"((long)(MESG_SZ))
);
__asm__ volatile (
"int $0x80": "=a"(re): "0"(1),"b" (0)
);
}
% gcc -nostartfiles -nodefaultlibs -nostdlib -static -o start1 start1.c
-Wl,--entry=main && ./start1
Hello, World!
а можно и так:
% cat start2.c
#define MESG "Hello, World!\n"
#define MESG_SZ sizeof(MESG)
void _start() __asm__("_start");
/* void __attribute__((section(".init"))) _init() {} */
void _start() {
long re;
__asm__ volatile (
"int $0x80": "=a"(re): "0"(4), "b"(1), "c"((long)MESG), "d"((long)(MESG_SZ))
);
__asm__ volatile (
"int $0x80": "=a"(re): "0"(1),"b" (0)
);
}
% gcc -nostartfiles -nodefaultlibs -nostdlib -static -o start2 start2.c &&
./start2 && ./start2
Hello, World!
и еще много как можно...
> какое дело компилятору до каких-то там точек входа.
>
компилятору непосредственно - никакого,
однако gcc - морда к: препроцессор,компилятор,ассемблер,линкер.
И линковка с standard system startup files - забота линкера.
bye.
--
Vladimir Yakovetsky
--- ifmail v.2.15dev5
* Origin: Disorganized yx's groupie (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
| Тема: |
Автор: |
Дата: |
|
FreeBSD size of C prg: Hello,World |
Sergey Korshunoff |
11 Mar 2001 11:13:44 |
Re: FreeBSD size of C prg: Hello,World |
Eugene Grosbein |
12 Mar 2001 13:31:14 |
FreeBSD size of C prg: Hello,World |
Vadim Mikhailov |
11 Mar 2001 23:41:36 |
 FreeBSD size of C prg: Hello,World |
Anton Eremeev |
13 Mar 2001 03:35:00 |
  Re: FreeBSD size of C prg: Hello,World |
Vladimir Bormotov |
13 Mar 2001 21:16:56 |
  FreeBSD size of C prg: Hello,World |
Fyodor Ustinov |
17 Mar 2001 20:16:48 |
  FreeBSD size of C prg: Hello,World |
Vadim Mikhailov |
17 Mar 2001 22:11:32 |
   FreeBSD size of C prg: Hello,World |
Fyodor Ustinov |
18 Mar 2001 13:41:05 |
  Re: FreeBSD size of C prg: Hello,World |
Valentin Nechayev |
19 Mar 2001 01:41:34 |
   FreeBSD size of C prg: Hello,World |
Fyodor Ustinov |
19 Mar 2001 11:04:23 |
  FreeBSD size of C prg: Hello,World |
Anton Eremeev |
25 Mar 2001 04:15:00 |
  Re: FreeBSD size of C prg: Hello,World |
Oleg.Polianski@clear.co.nz |
26 Mar 2001 02:27:41 |
  FreeBSD size of C prg: Hello,World |
Andrey Melnikov |
26 Mar 2001 12:03:16 |
  FreeBSD size of C prg: Hello,World |
Anton Eremeev |
26 Mar 2001 18:30:00 |
  Re: FreeBSD size of C prg: Hello,World |
Valentin Nechayev |
27 Mar 2001 16:42:04 |
  FreeBSD size of C prg: Hello,World |
Anton Eremeev |
28 Mar 2001 22:54:36 |
  Re: FreeBSD size of C prg: Hello,World |
Oleg.Polianski@clear.co.nz |
30 Mar 2001 01:59:56 |
  студент на экзамене.... |
Dima_Marchenko |
30 Mar 2001 18:32:37 |
  CALL FAR в DOS и не только |
Anton Eremeev |
31 Mar 2001 03:16:22 |
  Re: CALL FAR в DOS и не только |
Valentin Davydov |
31 Mar 2001 12:58:11 |
Re: FreeBSD size of C prg: Hello,World |
Mr Alex V Eustrop |
12 Mar 2001 17:12:47 |
 FreeBSD size of C prg: Hello,World |
Juriy Goloveshkin |
13 Mar 2001 18:12:58 |
Re: FreeBSD size of C prg: Hello,World |
Oleg.Polianski@clear.co.nz |
13 Mar 2001 10:26:05 |
 Re: FreeBSD size of C prg: Hello,World |
Valentin Nechayev |
13 Mar 2001 10:56:57 |
 Re: FreeBSD size of C prg: Hello,World |
Oleg.Polianski@clear.co.nz |
14 Mar 2001 00:54:03 |
 FreeBSD size of C prg: Hello,World |
Lev Serebryakov |
13 Mar 2001 13:06:20 |
  Re: FreeBSD size of C prg: Hello,World |
Oleg.Polianski@clear.co.nz |
14 Mar 2001 00:56:05 |
  FreeBSD size of C prg: Hello,World |
Lev Serebryakov |
14 Mar 2001 11:44:56 |
  Re: FreeBSD size of C prg: Hello,World |
Oleg.Polianski@clear.co.nz |
15 Mar 2001 04:25:16 |
  FreeBSD size of C prg: Hello,World |
Lev Serebryakov |
15 Mar 2001 12:17:09 |
   Re: FreeBSD size of C prg: Hello,World |
Oleg.Polianski@clear.co.nz |
16 Mar 2001 01:38:05 |
    Re: FreeBSD size of C prg: Hello,World |
yx |
19 Mar 2001 13:06:31 |
    Re: FreeBSD size of C prg: Hello,World |
Oleg.Polianski@clear.co.nz |
20 Mar 2001 04:10:59 |
    Re: FreeBSD size of C prg: Hello,World |
yx |
20 Mar 2001 05:57:34 |
    Re: FreeBSD size of C prg: Hello,World |
Oleg.Polianski@clear.co.nz |
20 Mar 2001 07:14:05 |
    Re: FreeBSD size of C prg: Hello,World |
yx |
20 Mar 2001 08:42:46 |
  FreeBSD size of C prg: Hello,World |
Sergey Korshunoff |
16 Mar 2001 11:46:45 |
   Re: FreeBSD size of C prg: Hello,World |
Dmitry Fedorov |
18 Mar 2001 17:03:30 |
    FreeBSD size of C prg: Hello,World |
Sergey Korshunoff |
20 Mar 2001 11:02:27 |
  minimalism linux/i386 |
yx |
21 Mar 2001 19:07:58 |
Re: FreeBSD size of C prg: Hello,World |
Jilkin Yuri |
14 Mar 2001 17:43:17 |
Re: FreeBSD size of C prg: Hello,World |
yx |
14 Mar 2001 23:52:19 |
|
|