2005-04-16 15:24:48 -07:00
/ *
* This s u p p l i e s . n o t e . * s e c t i o n s t o g o i n t o t h e P T _ N O T E i n s i d e t h e v D S O t e x t .
* Here w e c a n s u p p l y s o m e i n f o r m a t i o n u s e f u l t o u s e r l a n d .
* /
# include < l i n u x / v e r s i o n . h >
2007-07-17 18:37:03 -07:00
# include < l i n u x / e l f n o t e . h >
2005-04-16 15:24:48 -07:00
2007-07-17 18:37:03 -07:00
/ * Ideally t h i s w o u l d u s e U T S _ N A M E , b u t u s i n g a q u o t e d s t r i n g h e r e
doesn' t w o r k . R e m e m b e r t o c h a n g e t h i s w h e n c h a n g i n g t h e
kernel' s n a m e . * /
ELFNOTE_ S T A R T ( L i n u x , 0 , " a " )
2005-04-16 15:24:48 -07:00
.long LINUX_VERSION_CODE
2007-07-17 18:37:03 -07:00
ELFNOTE_ E N D
2007-07-17 18:37:04 -07:00
# ifdef C O N F I G _ X E N
/ *
* Add a s p e c i a l n o t e t e l l i n g g l i b c ' s d y n a m i c l i n k e r a f a k e h a r d w a r e
* flavor t h a t i t w i l l u s e t o c h o o s e t h e s e a r c h p a t h f o r l i b r a r i e s i n t h e
* same w a y i t u s e s r e a l h a r d w a r e c a p a b i l i t i e s l i k e " m m x " .
* We s u p p l y " n o s e g n e g " a s t h e f a k e c a p a b i l i t y , t o i n d i c a t e t h a t w e
* do n o t l i k e n e g a t i v e o f f s e t s i n i n s t r u c t i o n s u s i n g s e g m e n t o v e r r i d e s ,
* since w e i m p l e m e n t t h o s e i n e f f i c i e n t l y . T h i s m a k e s i t p o s s i b l e t o
* install l i b r a r i e s o p t i m i z e d t o a v o i d t h o s e a c c e s s p a t t e r n s i n s o m e p l a c e
* like / l i b / i 6 8 6 / t l s / n o s e g n e g . N o t e t h a t a n / e t c / l d . s o . c o n f . d / f i l e
* corresponding t o t h e b i t s h e r e i s n e e d e d t o m a k e l d c o n f i g w o r k r i g h t .
* It s h o u l d c o n t a i n :
* hwcap 1 n o s e g n e g
* to m a t c h t h e m a p p i n g o f b i t t o n a m e t h a t w e g i v e h e r e .
2007-07-20 00:31:43 -07:00
*
* At r u n t i m e , t h e f a k e h a r d w a r e f e a t u r e w i l l b e c o n s i d e r e d t o b e p r e s e n t
* if i t s b i t i s s e t i n t h e m a s k w o r d . S o , w e s t a r t w i t h t h e m a s k 0 , a n d
* at b o o t t i m e w e s e t V D S O _ N O T E _ N O N E G S E G _ B I T i f r u n n i n g u n d e r X e n .
2007-07-17 18:37:04 -07:00
* /
2008-01-30 13:30:42 +01:00
# include " . . / . . / x e n / v d s o . h " / * D e f i n e s V D S O _ N O T E _ N O N E G S E G _ B I T . * /
2007-07-17 18:37:04 -07:00
ELFNOTE_ S T A R T ( G N U , 2 , " a " )
2007-07-20 00:31:43 -07:00
.long 1 /* ncaps */
2008-01-30 13:30:42 +01:00
VDSO32_NOTE_MASK : /* Symbol used by arch/x86/xen/setup.c */
2007-07-20 00:31:43 -07:00
.long 0 /* mask */
2007-07-17 18:37:04 -07:00
.byte VDSO_ N O T E _ N O N E G S E G _ B I T ; .asciz "nosegneg" /* bit, name */
ELFNOTE_ E N D
# endif