Re: Chyba zepuste uClibc na TH - lvm2 i device-mapper

2007-06-04 Wątek Jakub Bogusz
On Mon, Jun 04, 2007 at 07:20:20AM +0200, Paweł Sikora wrote:
 On Sunday 03 of June 2007 22:35:43 Jakub Bogusz wrote:
 
  if (likely(_stdio_init != NULL))
  _stdio_init();
 
  ten warunek jakoś się optymalizuje do true, przez co bezwarunkowo
  wywołuje _stdio_init(),
 
 the address of ???_stdio_init??? will always evaluate as ???true???.

Co tak pisze? Bo nie gcc 4.1.2 ani 4.2.0 przy kompilacji uClibc.
-Wall jest w użyciu.
Bez __attribute__((weak)) dla _stdio_init() by miał do tego prawo (choć
też nie zgłasza, optymalizuje po cichu).

 tam trzeba uzyc wskaznika do funkcji, zeby to dzialalo poprawnie.

Do tej pory to była działająca konstrukcja do sprawdzania, czy symbol
z atrybutem weak został rozwiązany.


-- 
Jakub Boguszhttp://qboosh.pl/
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: Chyba zepuste uClibc na TH - lvm2 i device-mapper

2007-06-04 Wątek Paweł Sikora
Jakub Bogusz pisze:
 On Mon, Jun 04, 2007 at 07:20:20AM +0200, Paweł Sikora wrote:
 On Sunday 03 of June 2007 22:35:43 Jakub Bogusz wrote:

 if (likely(_stdio_init != NULL))
 _stdio_init();

 ten warunek jakoś się optymalizuje do true, przez co bezwarunkowo
 wywołuje _stdio_init(),
 the address of ???_stdio_init??? will always evaluate as ???true???.
 
 Co tak pisze? Bo nie gcc 4.1.2 ani 4.2.0 przy kompilacji uClibc.
 -Wall jest w użyciu.
 Bez __attribute__((weak)) dla _stdio_init() by miał do tego prawo (choć
 też nie zgłasza, optymalizuje po cichu).
 
 tam trzeba uzyc wskaznika do funkcji, zeby to dzialalo poprawnie.
 
 Do tej pory to była działająca konstrukcja do sprawdzania, czy symbol
 z atrybutem weak został rozwiązany.

i z weak nadal dziala:

extern void _f() __attribute__((visibility(hidden)));
void f()
{
 if ( _f )
 _f();
}
extern void _g() __attribute__((weak));
void g()
{
 if ( _g )
 _g();
}

$ gcc -Wall t.c -O2 -S -fdump-tree-optimized
t.c: In function 'f':
t.c:4: warning: the address of '_f' will always evaluate as 'true'

$ cat t.c.099t.optimized

g ()
{
   if (_g != 0B) goto L0; else goto L1;
L0:;
   _g () [tail call];
L1:;
   return;
}

f ()
{
   _f () [tail call];
   return;
}

___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: Chyba zepuste uClibc na TH - lvm2 i device-mapper

2007-06-04 Wątek Paweł Sikora
Jakub Bogusz pisze:
 On Mon, Jun 04, 2007 at 07:20:20AM +0200, Paweł Sikora wrote:
 On Sunday 03 of June 2007 22:35:43 Jakub Bogusz wrote:

 if (likely(_stdio_init != NULL))
 _stdio_init();

 ten warunek jakoś się optymalizuje do true, przez co bezwarunkowo
 wywołuje _stdio_init(),
 the address of ???_stdio_init??? will always evaluate as ???true???.
 
 Co tak pisze? Bo nie gcc 4.1.2 ani 4.2.0 przy kompilacji uClibc.
 -Wall jest w użyciu.

$ cat t.c
extern void _stdio_init(void) __attribute__((visibility(hidden)));
int main()
{
 if ( _stdio_init )
 _stdio_init();
}

$ gcc -Wall t.c -c
t.c: In function 'main':
t.c:4: warning: the address of '_stdio_init' will always evaluate as 'true'
t.c:6: warning: control reaches end of non-void function

gcc-4.2.0-5.x86_64

 Bez __attribute__((weak)) dla _stdio_init() by miał do tego prawo (choć
 też nie zgłasza, optymalizuje po cichu).

ja tam widze, tylko hidden:
include/bits/uClibc_stdio.h:
   extern void _stdio_init(void) attribute_hidden;

___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: SPECS: bind.spec - remove Obsoletes:nameserver

2007-06-04 Wątek Arkadiusz Patyk
On Mon, 4 Jun 2007 13:03:36 +0200 (CEST), you wrote:

areq wrote:
 -Obsoletes:  nameserver
[...]
  $Log$
 +Revision 1.255  2007/06/04 10:12:52  areq
 +- remove Obsoletes:nameserver

Jakis uzyteczny powod niewyinstalowywania automatycznie jednego nameserwera
podczas instalacji innego?

Ktos uzywa kilku nameserwerow na raz?

ja ;) z djbdns i własnie przy próbie upgrade binda chciał mi
wyinstalować go poldek.

Pozdrawiam,
-- 
Arkadiusz Patyk [areqpld-linux:org] [http://rescuecd.pld-linux.org/]
[IRC:areq skype:arekpatyk  GG:1383 jid:arekpatyk:net]
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: SPECS: bind.spec - remove Obsoletes:nameserver

2007-06-04 Wątek Andrzej Krzysztofowicz
Arkadiusz Patyk wrote:
 On Mon, 4 Jun 2007 13:03:36 +0200 (CEST), you wrote:
 
 areq wrote:
  -Obsoletes:nameserver
 [...]
   $Log$
  +Revision 1.255  2007/06/04 10:12:52  areq
  +- remove Obsoletes:nameserver
 
 Jakis uzyteczny powod niewyinstalowywania automatycznie jednego nameserwera
 podczas instalacji innego?
 
 Ktos uzywa kilku nameserwerow na raz?
 
 ja ;) z djbdns i własnie przy próbie upgrade binda chciał mi
 wyinstalować go poldek.

A mozesz przyblizyc do czego taka konfiguracja moze byc przydatna?
Tak z ciekawosci pytam.

-- 
===
  Andrzej M. Krzysztofowicz  [EMAIL PROTECTED]
  phone (48)(58) 347 19 36
Faculty of Applied Phys.  Math.,   Gdansk University of Technology
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: SPECS: bind.spec - remove Obsoletes:nameserver

2007-06-04 Wątek Arkadiusz Patyk
On Mon, 4 Jun 2007 13:21:55 +0200 (CEST), you wrote:
A mozesz przyblizyc do czego taka konfiguracja moze byc przydatna?
Tak z ciekawosci pytam.

bind - obsługuje mi 'publicznego' dns
a djbdns robi mi za DNS cache dla LAN + strefy wewnetrzne
-- 
Arkadiusz Patyk [areqpld-linux:org] [http://rescuecd.pld-linux.org/]
[IRC:areq skype:arekpatyk  GG:1383 jid:arekpatyk:net]
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: SPECS: bind.spec - remove Obsoletes:nameserver

2007-06-04 Wątek Andrzej Krzysztofowicz
areq wrote:
 -Obsoletes:   nameserver
[...]
  $Log$
 +Revision 1.255  2007/06/04 10:12:52  areq
 +- remove Obsoletes:nameserver

Jakis uzyteczny powod niewyinstalowywania automatycznie jednego nameserwera
podczas instalacji innego?

Ktos uzywa kilku nameserwerow na raz?

-- 
===
  Andrzej M. Krzysztofowicz  [EMAIL PROTECTED]
  phone (48)(58) 347 19 36
Faculty of Applied Phys.  Math.,   Gdansk University of Technology
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: SPECS: bind.spec - remove Obsoletes:nameserver

2007-06-04 Wątek Arkadiusz Miskiewicz
On Monday 04 of June 2007, Andrzej Krzysztofowicz wrote:
 Arkadiusz Patyk wrote:
  On Mon, 4 Jun 2007 13:03:36 +0200 (CEST), you wrote:
  areq wrote:
   -Obsoletes:  nameserver
  
  [...]
  
$Log$
   +Revision 1.255  2007/06/04 10:12:52  areq
   +- remove Obsoletes:nameserver
  
  Jakis uzyteczny powod niewyinstalowywania automatycznie jednego
   nameserwera podczas instalacji innego?
  
  Ktos uzywa kilku nameserwerow na raz?
 
  ja ;) z djbdns i własnie przy próbie upgrade binda chciał mi
  wyinstalować go poldek.

 A mozesz przyblizyc do czego taka konfiguracja moze byc przydatna?
 Tak z ciekawosci pytam.

djdbns jako cacheujący, bind jako serwujący strefy. W bindzie ludność mogła 
sobie dodawać co chciała, głupoty itp więc nie można go było używać jako tego 
w /etc/resolv.conf (i właśnie do tego celu służył djbdns).

Miałem tak swego czasu ale djbdns bodaj nie lubi SRV... 

-- 
Arkadiusz MiśkiewiczPLD/Linux Team
arekm / maven.plhttp://ftp.pld-linux.org/
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: SPECS: bind.spec - remove Obsoletes:nameserver

2007-06-04 Wątek Arkadiusz Patyk
On Mon, 4 Jun 2007 14:00:30 +0200, you wrote:

Znając tyle przypadków, podejrzewam, że może być ich sporo więcej.
Dlatego uważam, że w PLD zasadą powinno być umożliwienie instalowania
wielu różnych serwerów tych samych usług. Nie ważne, że w domyślnej
konfiguracji wszystkie razem się nie uruchomią (chociażby problem
jednego portu TCP) -- od tego jest admin, żeby sobie to skonfigurować.
Niech mu tylko dystrybucja nie przeszkadza.

w pełni popieram, ja mam np po kilka różnych pop3 na jednej maszynie
apache1 i apache2 itp.
A konflity które napotykam staram się eliminować w repo ;)

Pozdrawiam,
-- 
Arkadiusz Patyk [areqpld-linux:org] [http://rescuecd.pld-linux.org/]
[IRC:areq skype:arekpatyk  GG:1383 jid:arekpatyk:net]
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: SPECS: bind.spec - remove Obsoletes:nameserver

2007-06-04 Wątek Marcin Król
 Znając tyle przypadków, podejrzewam, że może być ich sporo więcej.
 Dlatego uważam, że w PLD zasadą powinno być umożliwienie instalowania
 wielu różnych serwerów tych samych usług. Nie ważne, że w domyślnej
 konfiguracji wszystkie razem się nie uruchomią (chociażby problem
 jednego portu TCP) -- od tego jest admin, żeby sobie to skonfigurować.
 Niech mu tylko dystrybucja nie przeszkadza.

+1 i dodatkowo rozdzielenie katalogow z konfiguracja, tylko prosze, nie taki
burdel jak w debianie, ze wszystko jest bezposrednio w /etc, ale niech bedzie
pogrupowane po rodzaju uslugi np /etc/mail/postfix, /etc/mail/sendmail itp.

M.
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: [TH] parted i gcc-4.2.0-5.i486

2007-06-04 Wątek Arkadiusz Patyk
On Mon, 4 Jun 2007 14:42:21 +0200, you wrote:

2007/6/4, Arkadiusz Patyk [EMAIL PROTECTED]:
 Hej


 Revision 1.142  2007/05/18 19:47:03  qboosh
 - glibc 2.6 headers support gcc 4.2, -fgnu89-inline no longer needed

 ale, u mnie kończy się:

  i486-pld-linux-gcc -std=gnu99 -I. -I../lib -I../lib -I../include
 -pipe -Os -march=i486 -falign-loops=0 -falign-jumps=0
 -falign-functions=0 -mno-align-double -Werror -MT constraint.lo -MD
 -MP -MF .deps/constraint.Tpo -c cs/constraint.c -o constraint.o
 /dev/null 21
 mv -f .deps/constraint.Tpo .deps/constraint.Plo
 /bin/sh ../libtool --tag=CC   --mode=compile i486-pld-linux-gcc
 -std=gnu99  -I. -I../lib -I../lib -I../include -pipe -Os
 -march=i486 -falign-loops=0 -falign-jumps=0 -falign-functions=0
 -mno-align-double -Werror -MT natmath.lo -MD -MP -MF .deps/natmath.Tpo
 -c -o natmath.lo `test -f 'cs/natmath.c' || echo './'`cs/natmath.c
  i486-pld-linux-gcc -std=gnu99 -I. -I../lib -I../lib -I../include
 -pipe -Os -march=i486 -falign-loops=0 -falign-jumps=0
 -falign-functions=0 -mno-align-double -Werror -MT natmath.lo -MD -MP
 -MF .deps/natmath.Tpo -c cs/natmath.c  -fPIC -DPIC -o .libs/natmath.o
 cc1: warnings being treated as errors
 cs/natmath.c:80: warning: C99 inline functions are not supported;
 using GNU89
 cs/natmath.c:80: warning: to disable this warning use -fgnu89-inline
 or the gnu_inline function attribute
 cs/natmath.c:86: warning: C99 inline functions are not supported;
 using GNU89
 make[2]: *** [natmath.lo] Error 1
 make[2]: Leaving directory
 `/home/areq/rpm/BUILD/parted-1.8.7/libparted'
 make[1]: *** [all-recursive] Error 1
 make[1]: Leaving directory
 `/home/areq/rpm/BUILD/parted-1.8.7/libparted'
 make: *** [all-recursive] Error 1
 error: Bad exit status from /home/areq/tmp/rpm-tmp.9052 (%build)

 cały log:
 http://areq.th-i486.pld.areq.eu.org/problemy/parted.spec.log


Wyłącz -Werror, wtedy zdaje się traktuje warningi jak errory, a z tym
inlinem to tylko warning.

--- parted.spec 18 May 2007 19:47:03 -  1.142
+++ parted.spec 4 Jun 2007 12:49:43 -
@@ -145,6 +145,7 @@
 %{__autoconf}
 %{__automake}
 %configure \
+   --disable-Werror \
%{!?with_readline:--without-readline} \
%{?with_readline:--with-readline} \
%{!?with_nls:--disable-nls} \

i sie buduje, ale czy to napewno jest właściwe rozwiązanie problemu i
comitować ?
-- 
Arkadiusz Patyk [areqpld-linux:org] [http://rescuecd.pld-linux.org/]
[IRC:areq skype:arekpatyk  GG:1383 jid:arekpatyk:net]
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: SPECS: bind.spec - remove Obsoletes:nameserver

2007-06-04 Wątek Jacek Konieczny
On Mon, Jun 04, 2007 at 02:07:53PM +0200, Marcin Król wrote:
 +1 i dodatkowo rozdzielenie katalogow z konfiguracja, tylko prosze, nie taki
 burdel jak w debianie, ze wszystko jest bezposrednio w /etc, ale niech bedzie
 pogrupowane po rodzaju uslugi np /etc/mail/postfix, /etc/mail/sendmail itp.

-1

Jak już zmieniać (bo to może strasznie skomplikować ewentualny upgrade),
to standardowo, jak usługi tego oczekują, a więc: /etc/postfix dla
postfiksa, nie wiem jak dla innych.

Pozdrowienia,
Jacek
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


[TH] parted i gcc-4.2.0-5.i486

2007-06-04 Wątek Arkadiusz Patyk
Hej


Revision 1.142  2007/05/18 19:47:03  qboosh
- glibc 2.6 headers support gcc 4.2, -fgnu89-inline no longer needed

ale, u mnie kończy się:

 i486-pld-linux-gcc -std=gnu99 -I. -I../lib -I../lib -I../include
-pipe -Os -march=i486 -falign-loops=0 -falign-jumps=0
-falign-functions=0 -mno-align-double -Werror -MT constraint.lo -MD
-MP -MF .deps/constraint.Tpo -c cs/constraint.c -o constraint.o
/dev/null 21
mv -f .deps/constraint.Tpo .deps/constraint.Plo
/bin/sh ../libtool --tag=CC   --mode=compile i486-pld-linux-gcc
-std=gnu99  -I. -I../lib -I../lib -I../include -pipe -Os
-march=i486 -falign-loops=0 -falign-jumps=0 -falign-functions=0
-mno-align-double -Werror -MT natmath.lo -MD -MP -MF .deps/natmath.Tpo
-c -o natmath.lo `test -f 'cs/natmath.c' || echo './'`cs/natmath.c
 i486-pld-linux-gcc -std=gnu99 -I. -I../lib -I../lib -I../include
-pipe -Os -march=i486 -falign-loops=0 -falign-jumps=0
-falign-functions=0 -mno-align-double -Werror -MT natmath.lo -MD -MP
-MF .deps/natmath.Tpo -c cs/natmath.c  -fPIC -DPIC -o .libs/natmath.o
cc1: warnings being treated as errors
cs/natmath.c:80: warning: C99 inline functions are not supported;
using GNU89
cs/natmath.c:80: warning: to disable this warning use -fgnu89-inline
or the gnu_inline function attribute
cs/natmath.c:86: warning: C99 inline functions are not supported;
using GNU89
make[2]: *** [natmath.lo] Error 1
make[2]: Leaving directory
`/home/areq/rpm/BUILD/parted-1.8.7/libparted'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/home/areq/rpm/BUILD/parted-1.8.7/libparted'
make: *** [all-recursive] Error 1
error: Bad exit status from /home/areq/tmp/rpm-tmp.9052 (%build)

cały log:
http://areq.th-i486.pld.areq.eu.org/problemy/parted.spec.log

Pozdrawiam,
-- 
Arkadiusz Patyk [areqpld-linux:org] [http://rescuecd.pld-linux.org/]
[IRC:areq skype:arekpatyk  GG:1383 jid:arekpatyk:net]
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: Chyba zepuste uClibc na TH - lvm2 i device-mapper

2007-06-04 Wątek Jakub Bogusz
On Mon, Jun 04, 2007 at 08:41:35AM +0200, Paweł Sikora wrote:
 Jakub Bogusz pisze:
  On Mon, Jun 04, 2007 at 07:20:20AM +0200, Paweł Sikora wrote:
  On Sunday 03 of June 2007 22:35:43 Jakub Bogusz wrote:
 
  if (likely(_stdio_init != NULL))
  _stdio_init();
 
  ten warunek jakoś się optymalizuje do true, przez co bezwarunkowo
  wywołuje _stdio_init(),
  the address of ???_stdio_init??? will always evaluate as ???true???.
  
  Co tak pisze? Bo nie gcc 4.1.2 ani 4.2.0 przy kompilacji uClibc.
  -Wall jest w użyciu.
 
 $ cat t.c
 extern void _stdio_init(void) __attribute__((visibility(hidden)));
 int main()
 {
  if ( _stdio_init )
  _stdio_init();
 }
 
 $ gcc -Wall t.c -c
 t.c: In function 'main':
 t.c:4: warning: the address of '_stdio_init' will always evaluate as 'true'
 t.c:6: warning: control reaches end of non-void function

Bez weak owszem, ma pełne prawo.
Co ciekawe ostrzeżenie jest tylko przy pominięciu != NULL. Oczywiście
warunki usuwa w także z != NULL.

 gcc-4.2.0-5.x86_64
 
  Bez __attribute__((weak)) dla _stdio_init() by miał do tego prawo (choć
  też nie zgłasza, optymalizuje po cichu).
 
 ja tam widze, tylko hidden:
 include/bits/uClibc_stdio.h:
extern void _stdio_init(void) attribute_hidden;

W plikach z tymi odwołaniami jest weak:

libc/misc/internals/__uClibc_main.c:
extern void weak_function _stdio_init(void) attribute_hidden;

libc/stdlib/_atexit.c:
extern void weak_function _stdio_term(void) attribute_hidden;

Nawet jeśli ten poprzedni prototyp dołącza wcześniej, to w krótkim kodzie
nie powoduje to pominięcia warunku:

#v+
#include stdlib.h

extern void func1(void);
extern void func2(void) __attribute__((visibility(hidden)));

extern void __attribute__((weak)) func1(void);
extern void __attribute__((weak)) func2(void) 
__attribute__((visibility(hidden)));

# define likely(x)  __builtin_expect((!!(x)),1)

int main()
{
  if(likely(func1 != NULL))
func1();
  if(likely(func2 != NULL))
func2();
}
#v-


-- 
Jakub Boguszhttp://qboosh.pl/
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: Chyba zepuste uClibc na TH - lvm2 i device-mapper

2007-06-04 Wątek Paweł Sikora
On Monday 04 of June 2007 17:52:55 Jakub Bogusz wrote:

 Co ciekawe ostrzeżenie jest tylko przy pominięciu != NULL.

tak, to sie nadaje na zgloszenie, co zaraz wyklikam.

 Oczywiście warunki usuwa w także z != NULL.

hmm, u mnie nie usuwa, __uClibc_init kompiluje sie do:

__uClibc_init ()
{
  static int been_there_done_that = 0;
  if (been_there_done_that != 0) goto L4; else goto L0;
L0:;
  been_there_done_that = 1;
  __pagesize = 4096;
  if (__pthread_initialize_minimal != 0B) goto L1; else goto L2;
L1:;
  __pthread_initialize_minimal ();
L2:;
  if (_stdio_init != 0B) goto L3; else goto L4;
L3:;
  _stdio_init () [tail call];
L4:;
  return;
}

-- 
MIT is like the Paris Hilton of technology universities.
   Every guy knows about it and want's to get inside.
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: Chyba zepuste uClibc na TH - lvm2 i device-mapper

2007-06-04 Wątek Paweł Sikora
On Monday 04 of June 2007 18:47:21 Paweł Sikora wrote:

 hmm, u mnie nie usuwa, __uClibc_init kompiluje sie do:

to jest oczywiscie bez latki -unhide.

-- 
MIT is like the Paris Hilton of technology universities.
   Every guy knows about it and want's to get inside.
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: Chyba zepuste uClibc na TH - lvm2 i device-mapper

2007-06-04 Wątek Paweł Sikora
On Monday 04 of June 2007 17:52:55 Jakub Bogusz wrote:

 Co ciekawe ostrzeżenie jest tylko przy pominięciu != NULL.

PR32207

btw. zbudowalem uClibc, release 4 bez latki unhide
i 'int main()' dziala poprawnie (@gcc-4.2.0-5.x86_64).

-- 
MIT is like the Paris Hilton of technology universities.
   Every guy knows about it and want's to get inside.
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: Chyba zepuste uClibc na TH - lvm2 i device-mapper

2007-06-04 Wątek Jakub Bogusz
On Mon, Jun 04, 2007 at 07:02:48PM +0200, Paweł Sikora wrote:
 On Monday 04 of June 2007 17:52:55 Jakub Bogusz wrote:
 
  Co ciekawe ostrzeżenie jest tylko przy pominięciu != NULL.
 
 PR32207
 
 btw. zbudowalem uClibc, release 4 bez latki unhide
 i 'int main()' dziala poprawnie (@gcc-4.2.0-5.x86_64).

Na x86_64 działało (od 0.9.29-2, bez -unhide), na i686 nie.

gcc-4.2.0-5 było zbudowane przed uClibc-0.9.29-2 (sypiącym się
w __uClibc_init()) i uClibc-0.9.29-3 (sypiącym się w __uClibc_fini()).



-- 
Jakub Boguszhttp://qboosh.pl/
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


Re: Chyba zepuste uClibc na TH - lvm2 i device-mapper

2007-06-04 Wątek Jakub Bogusz
On Mon, Jun 04, 2007 at 05:52:55PM +0200, Jakub Bogusz wrote:
 Nawet jeśli ten poprzedni prototyp dołącza wcześniej, to w krótkim kodzie
 nie powoduje to pominięcia warunku:
 
 #v+
 #include stdlib.h
 
 extern void func1(void);
 extern void func2(void) __attribute__((visibility(hidden)));
 
 extern void __attribute__((weak)) func1(void);
 extern void __attribute__((weak)) func2(void) 
 __attribute__((visibility(hidden)));
 
 # define likely(x)  __builtin_expect((!!(x)),1)
 
 int main()
 {
   if(likely(func1 != NULL))
 func1();
   if(likely(func2 != NULL))
 func2();
 }
 #v-

Dobra, mam warunki brzegowe.
-O{1,2,s} + -fPIC.
Przy czym w zrzucie drzewa warunek dalej jest, nie ma go dopiero
w kodzie asemblerowym.

#v+
$ cat ah.c.t93.optimized

;; Function main (main)

Analyzing Edge Insertions.
main ()
{
bb 0:
  if (func1 != 0B) goto L0; else goto L1;

L0:;
  func1 ();

L1:;
  if (func2 != 0B) goto L2; else goto L3;

L2:;
  func2 () [tail call];

L3:;
  return;
#v-

#v+
$ diff -u ah.s.O{0,1}
--- ah.s.O0 2007-06-04 19:18:03.849740867 +0200
+++ ah.s.O1 2007-06-04 19:17:59.273480081 +0200
@@ -8,22 +8,18 @@
pushl   -4(%ecx)
pushl   %ebp
movl%esp, %ebp
-   pushl   %ebx
-   pushl   %ecx
+   subl$8, %esp
+   movl%ecx, (%esp)
+   movl%ebx, 4(%esp)
call__i686.get_pc_thunk.bx
addl$_GLOBAL_OFFSET_TABLE_, %ebx
-   movl[EMAIL PROTECTED](%ebx), %eax
-   testl   %eax, %eax
+   cmpl$0, [EMAIL PROTECTED](%ebx)
je  .L2
call[EMAIL PROTECTED]
 .L2:
-   leal[EMAIL PROTECTED](%ebx), %eax
-   testl   %eax, %eax
-   je  .L7
callfunc2
-.L7:
-   popl%ecx
-   popl%ebx
+   movl(%esp), %ecx
+   movl4(%esp), %ebx
leave
leal-4(%ecx), %esp
ret
#v-

Też bym się nie spodziewał, że przy adresie wyliczanym względem kodu,
bez tablicy relokacji, wyjdzie NULL ;)

Już rozumiem jak to działa:
- bez -fPIC są inne relokacje i adresy wstawiane bezpośrednio w kod
  (przez ld przy linkowaniu statycznym; przy dynamicznym przez ld-linux,
  ale nie na wszystkich architekturach jest to obsługiwane) - tutaj gcc
  nie zakłada niezerowości
- przy -fPIC i visibility=default i linkowaniu dynamicznym rekolacja
  obliczana jest w runtime i sprawdzenie musi być obecne w kodzie;
  przy statycznym jest obliczana przez ld
- przy -fPIC i visibility=hidden i linkowaniu dynamicznym adres jest
  obliczany przez ld; i tu sprawdza się założenie gcc o niezerowości
  adresu - symbol jest zawsze obecny w bibliotece współdzielonej
  (no dobra, da się zlinkować bez, ale to nie ma sensu, bo binarka
  czy inna biblioteka już tego symbolu nie dostarczy)

natomiast przy statycznym linkowaniu kodu PIC fakt niezerowości
adresu symbolu jest znany w momencie linkowania, a kod został już
zoptymalizowany wcześniej z błędnym założeniem.

W sumie to się nadaje do zgłoszenia do gcc - jeśli zakładają nie
robienie takich rzeczy, to niech przynajmniej udokumentują, że
przy PIC+weak+visibility=hidden dla extern weak jest ignorowane.

A swoją drogą na listę uclibc też to można opisać.


-- 
Jakub Boguszhttp://qboosh.pl/
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


[PATCH] dcraw

2007-06-04 Wątek Michal Kochanowicz
Trywialny update, dodaje m.in. wsparcie dla formatów RAW generowanych
przez schackowany soft dla kompaktów Canona.

-- 
--= Michal Kochanowicz =--==--==BOFH==--==--= [EMAIL PROTECTED] =--
--= finger me for PGP public key or visit http://michal.waw.pl/PGP =--
--==--==--==--==--==-- Vodka. Connecting people.--==--==--==--==--==--
A chodzenie po górach SSIE!!!
Index: dcraw.spec
===
RCS file: /cvsroot/SPECS/dcraw.spec,v
retrieving revision 1.14
diff -u -r1.14 dcraw.spec
--- dcraw.spec  12 Feb 2007 21:23:52 -  1.14
+++ dcraw.spec  4 Jun 2007 22:31:31 -
@@ -5,7 +5,7 @@
 Summary:   Raw Digital Photo Decoder
 Summary(pl.UTF-8): Dekoder zdjęć cyfrowych w formacie raw
 Name:  dcraw
-Version:   8.43
+Version:   8.73
 Epoch: 1
 Release:   1
 License:   Free + GPL (for some parts of code)
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl


driver sx a promise sx8300

2007-06-04 Wątek Maciej Jan Broniarz
Hej,

Testowal ktos ten modul we wspolpracy z promise sx8300 ? Z tego co
widze na stronie producenta to zalecaja gotowa binarke, ktora u nas
oczywiscie nie dziala.  sx8 z rescue laduje sie ladnie ale
nie widac dyskow ani macierzy. Udalo sie komus uruchomic na pld ten kontroler?

Pozdrawiam
gausus

-- 
[ - Maciej Jan Broniarz || [EMAIL PROTECTED] -- ]
| Siamo qui \ sotto la stessa luce \ sotto la sua croce \ |
| cantando ad una voce \ E l'Emmanuel Emmanuel, Emmanuel, |
[ --- E l'Emmanuel, Emmanuel -- ]
___
pld-devel-pl mailing list
pld-devel-pl@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl