Nagłówki jądra (Re: [ac] kolejny problem z okolic /usr/include/asm/byteorder.h ( kdemultimedia.spec))

Paweł Sikora pluto w ds14.agh.edu.pl
Sob, 15 Lis 2003, 23:31:46 CET


On Saturday 15 of November 2003 16:41, Jakub Bogusz wrote:

> Może to "-ansi" w opcjach przeszkadza?

-ansi na pewno przeszkadza, bo wylacza (i zreszta slusznie) typ __u64.

> Teraz pytanie - czy:
> - bierzemy jako bazę paczkę nagłówków z RH i próbujemy łatać nakładając
>   kolejne patche (takowe będą - te nagłówki nie są doskonałe; poza tym
>   w ostatnich wersjach nie ma sparca)
>
> - czy wrzucamy bazowe nagłówki[1] do modułu w CVS[2] i w ten sposób
>   poprawiamy, pakując co jakiś czas nową wersję
>
> [1] z RH, 2.4.22 czy 2.6.0-test9? nie uciekniemy od porównywania ich :/
> [2] świadomie napisałem _te_ 3 litery ;)

skrobnalem taki testowy program: test.cpp

#include <asm/byteorder.h>
#include <stdio.h>
__u64 x = (__u64)0x0000000000000001ULL;
int main()
{
  printf("x = %016llx\n", x);
  __arch__swab64s(&x);
  printf("x = %016llx\n", x);
}

proba kompilacji /g++ -Wall -O3 -pedantic test.cpp/ konczy sie bledem.

# In file included from /usr/include/linux/byteorder/little_endian.h:11,
#                  from /usr/include/asm/byteorder.h:65,
#                  from test.cpp:1:
# /usr/include/linux/byteorder/swab.h:
#   In function `const __u32 __fswab24(unsigned int)':
# /usr/include/linux/byteorder/swab.h:174:
#   error: ISO C++ forbids braced-groups within expressions
# /usr/include/linux/byteorder/swab.h:174:
#   error: ISO C++ forbids braced-groups within expressions
# /usr/include/linux/byteorder/swab.h:
#   In function `__u32 __swab24p(__u32*)':
# /usr/include/linux/byteorder/swab.h:178:
#   error: ISO C++ forbids braced-groups within expressions
# /usr/include/linux/byteorder/swab.h:178:
#   error: ISO C++ forbids braced-groups within expressions
# /usr/include/linux/byteorder/swab.h:
#   In function `void __swab24s(__u32*)':
# /usr/include/linux/byteorder/swab.h:182:
#   error: ISO C++ forbids braced-groups within expressions
# /usr/include/linux/byteorder/swab.h:182:
#   error: ISO C++ forbids braced-groups within expressions
# test.cpp:4:18: warning: use of C99 long long integer constant

po aplikacji latki na kernel-source-2.4.22-1.5
i rekompilacji pozostaje tylko:

# test.cpp:4:18: warning: use of C99 long long integer constant

-- 
The only thing necessary for the triumph of evil
  is for good men to do nothing.
                                           - Edmund Burke
-------------- następna część ---------
Załącznik, który nie był tekstem został usunięty...
Name: swab.h.diff
Type: text/x-diff
Size: 5380 bytes
Desc: nie znany
Url : /mailman/pipermail/pld-devel-pl/attachments/20040626/e765bb1a/swab.h.bin


Więcej informacji o liście dyskusyjnej pld-devel-pl