Главная страница


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 
Архивное /ru.unix/134014fbbb748.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional