OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [ld/] [testsuite/] [ld-elfvsb/] [main.c] - Diff between revs 156 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 156 Rev 816
#ifdef PROTECTED_CHECK
#ifdef PROTECTED_CHECK
#include <features.h>
#include <features.h>
#include <stdio.h>
#include <stdio.h>
 
 
int
int
main (void)
main (void)
{
{
#if defined (__GLIBC__) && (__GLIBC__ > 2 \
#if defined (__GLIBC__) && (__GLIBC__ > 2 \
                            || (__GLIBC__ == 2 \
                            || (__GLIBC__ == 2 \
                                &&  __GLIBC_MINOR__ >= 2))
                                &&  __GLIBC_MINOR__ >= 2))
  puts ("yes");
  puts ("yes");
#else
#else
  puts ("no");
  puts ("no");
#endif
#endif
  return 0;
  return 0;
}
}
#else
#else
/* This is the main program for the shared library test.  */
/* This is the main program for the shared library test.  */
 
 
#include <stdio.h>
#include <stdio.h>
 
 
int mainvar = 1;
int mainvar = 1;
int overriddenvar = 2;
int overriddenvar = 2;
extern int shlibvar1;
extern int shlibvar1;
 
 
extern int shlib_mainvar ();
extern int shlib_mainvar ();
extern int shlib_overriddenvar ();
extern int shlib_overriddenvar ();
extern int shlib_shlibvar1 ();
extern int shlib_shlibvar1 ();
extern int shlib_shlibvar2 ();
extern int shlib_shlibvar2 ();
extern int shlib_shlibcall ();
extern int shlib_shlibcall ();
extern int shlib_maincall ();
extern int shlib_maincall ();
extern int shlib_checkfunptr1 ();
extern int shlib_checkfunptr1 ();
extern int shlib_checkfunptr2 ();
extern int shlib_checkfunptr2 ();
extern int (*shlib_getfunptr1 ()) ();
extern int (*shlib_getfunptr1 ()) ();
extern int (*shlib_getfunptr2 ()) ();
extern int (*shlib_getfunptr2 ()) ();
extern int shlib_check ();
extern int shlib_check ();
extern int shlib_shlibcall2 ();
extern int shlib_shlibcall2 ();
extern int visibility_check ();
extern int visibility_check ();
extern int visibility_checkfunptr ();
extern int visibility_checkfunptr ();
extern void *visibility_funptr ();
extern void *visibility_funptr ();
extern int visibility_checkvar ();
extern int visibility_checkvar ();
extern int visibility_checkvarptr ();
extern int visibility_checkvarptr ();
extern int visibility_varval ();
extern int visibility_varval ();
extern void *visibility_varptr ();
extern void *visibility_varptr ();
extern int shlib_visibility_checkcom ();
extern int shlib_visibility_checkcom ();
extern int shlib_visibility_checkweak ();
extern int shlib_visibility_checkweak ();
 
 
int shlib_visibility_com = 1;
int shlib_visibility_com = 1;
 
 
int shlib_visibility_var_weak = 1;
int shlib_visibility_var_weak = 1;
 
 
int
int
shlib_visibility_func_weak ()
shlib_visibility_func_weak ()
{
{
  return 1;
  return 1;
}
}
 
 
#ifdef HIDDEN_WEAK_TEST
#ifdef HIDDEN_WEAK_TEST
#define WEAK_TEST
#define WEAK_TEST
#endif
#endif
 
 
#ifdef PROTECTED_WEAK_TEST
#ifdef PROTECTED_WEAK_TEST
#define WEAK_TEST
#define WEAK_TEST
#endif
#endif
 
 
#ifdef PROTECTED_UNDEF_TEST
#ifdef PROTECTED_UNDEF_TEST
#define PROTECTED_TEST
#define PROTECTED_TEST
#endif
#endif
 
 
#ifndef WEAK_TEST
#ifndef WEAK_TEST
extern int visibility ();
extern int visibility ();
extern int visibility_var;
extern int visibility_var;
#endif
#endif
 
 
#if !defined (HIDDEN_TEST) && defined (PROTECTED_TEST)
#if !defined (HIDDEN_TEST) && defined (PROTECTED_TEST)
int
int
visibility (void)
visibility (void)
{
{
  return 1;
  return 1;
}
}
 
 
static int
static int
main_visibility_check (void)
main_visibility_check (void)
{
{
  return ((int (*) (void)) visibility_funptr ()) != visibility;
  return ((int (*) (void)) visibility_funptr ()) != visibility;
}
}
 
 
int visibility_var = 1;
int visibility_var = 1;
 
 
static int
static int
main_visibility_checkvar (void)
main_visibility_checkvar (void)
{
{
  return visibility_varval () != visibility_var
  return visibility_varval () != visibility_var
         && visibility_varptr () != &visibility_var;
         && visibility_varptr () != &visibility_var;
}
}
 
 
#ifndef PROTECTED_UNDEF_TEST
#ifndef PROTECTED_UNDEF_TEST
int shared_data = 1;
int shared_data = 1;
asm (".protected shared_data");
asm (".protected shared_data");
 
 
int
int
shared_func (void)
shared_func (void)
{
{
  return 1;
  return 1;
}
}
 
 
asm (".protected shared_func");
asm (".protected shared_func");
 
 
extern int * shared_data_p ();
extern int * shared_data_p ();
typedef int (*func) ();
typedef int (*func) ();
extern func shared_func_p ();
extern func shared_func_p ();
#endif
#endif
#else
#else
static int
static int
main_visibility_check (void)
main_visibility_check (void)
{
{
#ifdef WEAK_TEST
#ifdef WEAK_TEST
  return visibility_funptr () == NULL;
  return visibility_funptr () == NULL;
#else
#else
  return ((int (*) (void)) visibility_funptr ()) == visibility;
  return ((int (*) (void)) visibility_funptr ()) == visibility;
#endif
#endif
}
}
 
 
static int
static int
main_visibility_checkvar (void)
main_visibility_checkvar (void)
{
{
#ifdef WEAK_TEST
#ifdef WEAK_TEST
  return visibility_varval () == 0
  return visibility_varval () == 0
         && visibility_varptr () == NULL;
         && visibility_varptr () == NULL;
#else
#else
  return visibility_varval () == visibility_var
  return visibility_varval () == visibility_var
         && visibility_varptr () == &visibility_var;
         && visibility_varptr () == &visibility_var;
#endif
#endif
}
}
#endif
#endif
 
 
/* This function is called by the shared library.  */
/* This function is called by the shared library.  */
 
 
int
int
main_called (void)
main_called (void)
{
{
  return 6;
  return 6;
}
}
 
 
/* This function overrides a function in the shared library.  */
/* This function overrides a function in the shared library.  */
 
 
int
int
shlib_overriddencall2 (void)
shlib_overriddencall2 (void)
{
{
  return 8;
  return 8;
}
}
 
 
#ifdef HIDDEN_NORMAL_TEST
#ifdef HIDDEN_NORMAL_TEST
int visibility_com;
int visibility_com;
asm (".hidden visibility_com");
asm (".hidden visibility_com");
 
 
int
int
main_visibility_checkcom (void)
main_visibility_checkcom (void)
{
{
  return visibility_com == 0;
  return visibility_com == 0;
}
}
 
 
int
int
main_visibility_checkweak (void)
main_visibility_checkweak (void)
{
{
  return 1;
  return 1;
}
}
#elif defined (HIDDEN_WEAK_TEST)
#elif defined (HIDDEN_WEAK_TEST)
int
int
main_visibility_checkcom (void)
main_visibility_checkcom (void)
{
{
  return 1;
  return 1;
}
}
 
 
#pragma weak visibility_undef_var_weak
#pragma weak visibility_undef_var_weak
extern int visibility_undef_var_weak;
extern int visibility_undef_var_weak;
asm (".hidden visibility_undef_var_weak");
asm (".hidden visibility_undef_var_weak");
 
 
#pragma weak visibility_undef_func_weak
#pragma weak visibility_undef_func_weak
extern int visibility_undef_func_weak ();
extern int visibility_undef_func_weak ();
asm (".hidden visibility_undef_func_weak");
asm (".hidden visibility_undef_func_weak");
 
 
#pragma weak visibility_var_weak
#pragma weak visibility_var_weak
extern int visibility_var_weak;
extern int visibility_var_weak;
asm (".hidden visibility_var_weak");
asm (".hidden visibility_var_weak");
 
 
#pragma weak visibility_func_weak
#pragma weak visibility_func_weak
extern int visibility_func_weak ();
extern int visibility_func_weak ();
asm (".hidden visibility_func_weak");
asm (".hidden visibility_func_weak");
 
 
int
int
main_visibility_checkweak ()
main_visibility_checkweak ()
{
{
  return &visibility_undef_var_weak == NULL
  return &visibility_undef_var_weak == NULL
         && &visibility_undef_func_weak == NULL
         && &visibility_undef_func_weak == NULL
         && &visibility_func_weak == NULL
         && &visibility_func_weak == NULL
         && &visibility_var_weak == NULL;
         && &visibility_var_weak == NULL;
}
}
#elif defined (HIDDEN_UNDEF_TEST)
#elif defined (HIDDEN_UNDEF_TEST)
extern int visibility_def;
extern int visibility_def;
asm (".hidden visibility_def");
asm (".hidden visibility_def");
extern int visibility_func ();
extern int visibility_func ();
asm (".hidden visibility_func");
asm (".hidden visibility_func");
 
 
int
int
main_visibility_checkcom (void)
main_visibility_checkcom (void)
{
{
  return & visibility_def != NULL && visibility_def == 2;
  return & visibility_def != NULL && visibility_def == 2;
}
}
 
 
int
int
main_visibility_checkweak (void)
main_visibility_checkweak (void)
{
{
  return & visibility_func != NULL && visibility_func () == 2;
  return & visibility_func != NULL && visibility_func () == 2;
}
}
#else
#else
int
int
main_visibility_checkcom (void)
main_visibility_checkcom (void)
{
{
  return 1;
  return 1;
}
}
 
 
int
int
main_visibility_checkweak (void)
main_visibility_checkweak (void)
{
{
  return 1;
  return 1;
}
}
#endif
#endif
 
 
int
int
main (void)
main (void)
{
{
  int (*p) ();
  int (*p) ();
  int ret = 0;
  int ret = 0;
 
 
  printf ("mainvar == %d\n", mainvar);
  printf ("mainvar == %d\n", mainvar);
  printf ("overriddenvar == %d\n", overriddenvar);
  printf ("overriddenvar == %d\n", overriddenvar);
  printf ("shlibvar1 == %d\n", shlibvar1);
  printf ("shlibvar1 == %d\n", shlibvar1);
#ifndef XCOFF_TEST
#ifndef XCOFF_TEST
  printf ("shlib_mainvar () == %d\n", shlib_mainvar ());
  printf ("shlib_mainvar () == %d\n", shlib_mainvar ());
  printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ());
  printf ("shlib_overriddenvar () == %d\n", shlib_overriddenvar ());
#endif
#endif
  printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ());
  printf ("shlib_shlibvar1 () == %d\n", shlib_shlibvar1 ());
  printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ());
  printf ("shlib_shlibvar2 () == %d\n", shlib_shlibvar2 ());
  printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ());
  printf ("shlib_shlibcall () == %d\n", shlib_shlibcall ());
#ifndef XCOFF_TEST
#ifndef XCOFF_TEST
  printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ());
  printf ("shlib_shlibcall2 () == %d\n", shlib_shlibcall2 ());
  printf ("shlib_maincall () == %d\n", shlib_maincall ());
  printf ("shlib_maincall () == %d\n", shlib_maincall ());
#endif
#endif
  printf ("main_called () == %d\n", main_called ());
  printf ("main_called () == %d\n", main_called ());
  printf ("shlib_checkfunptr1 (shlib_shlibvar1) == %d\n",
  printf ("shlib_checkfunptr1 (shlib_shlibvar1) == %d\n",
          shlib_checkfunptr1 (shlib_shlibvar1));
          shlib_checkfunptr1 (shlib_shlibvar1));
#ifndef XCOFF_TEST
#ifndef XCOFF_TEST
  printf ("shlib_checkfunptr2 (main_called) == %d\n",
  printf ("shlib_checkfunptr2 (main_called) == %d\n",
          shlib_checkfunptr2 (main_called));
          shlib_checkfunptr2 (main_called));
#endif
#endif
  p = shlib_getfunptr1 ();
  p = shlib_getfunptr1 ();
  printf ("shlib_getfunptr1 () ");
  printf ("shlib_getfunptr1 () ");
  if (p == shlib_shlibvar1)
  if (p == shlib_shlibvar1)
    printf ("==");
    printf ("==");
  else
  else
    printf ("!=");
    printf ("!=");
  printf (" shlib_shlibvar1\n");
  printf (" shlib_shlibvar1\n");
#ifndef XCOFF_TEST
#ifndef XCOFF_TEST
  p = shlib_getfunptr2 ();
  p = shlib_getfunptr2 ();
  printf ("shlib_getfunptr2 () ");
  printf ("shlib_getfunptr2 () ");
  if (p == main_called)
  if (p == main_called)
    printf ("==");
    printf ("==");
  else
  else
    printf ("!=");
    printf ("!=");
  printf (" main_called\n");
  printf (" main_called\n");
#endif
#endif
  printf ("shlib_check () == %d\n", shlib_check ());
  printf ("shlib_check () == %d\n", shlib_check ());
  printf ("visibility_check () == %d\n", visibility_check ());
  printf ("visibility_check () == %d\n", visibility_check ());
  printf ("visibility_checkfunptr () == %d\n",
  printf ("visibility_checkfunptr () == %d\n",
          visibility_checkfunptr ());
          visibility_checkfunptr ());
  printf ("main_visibility_check () == %d\n", main_visibility_check ());
  printf ("main_visibility_check () == %d\n", main_visibility_check ());
  printf ("visibility_checkvar () == %d\n", visibility_checkvar ());
  printf ("visibility_checkvar () == %d\n", visibility_checkvar ());
  printf ("visibility_checkvarptr () == %d\n",
  printf ("visibility_checkvarptr () == %d\n",
          visibility_checkvarptr ());
          visibility_checkvarptr ());
  printf ("main_visibility_checkvar () == %d\n",
  printf ("main_visibility_checkvar () == %d\n",
          main_visibility_checkvar ());
          main_visibility_checkvar ());
  printf ("main_visibility_checkcom () == %d\n",
  printf ("main_visibility_checkcom () == %d\n",
          main_visibility_checkcom ());
          main_visibility_checkcom ());
  printf ("shlib_visibility_checkcom () == %d\n",
  printf ("shlib_visibility_checkcom () == %d\n",
          shlib_visibility_checkcom ());
          shlib_visibility_checkcom ());
  printf ("main_visibility_checkweak () == %d\n",
  printf ("main_visibility_checkweak () == %d\n",
          main_visibility_checkweak ());
          main_visibility_checkweak ());
  printf ("shlib_visibility_checkweak () == %d\n",
  printf ("shlib_visibility_checkweak () == %d\n",
          shlib_visibility_checkweak ());
          shlib_visibility_checkweak ());
 
 
#if !defined (PROTECTED_UNDEF_TEST) && defined (PROTECTED_TEST)
#if !defined (PROTECTED_UNDEF_TEST) && defined (PROTECTED_TEST)
  if (&shared_data != shared_data_p ())
  if (&shared_data != shared_data_p ())
    ret = 1;
    ret = 1;
  p = shared_func_p ();
  p = shared_func_p ();
  if (shared_func != p)
  if (shared_func != p)
    ret = 1;
    ret = 1;
  if (shared_data != *shared_data_p ())
  if (shared_data != *shared_data_p ())
    ret = 1;
    ret = 1;
  if (shared_func () != (*p) () )
  if (shared_func () != (*p) () )
    ret = 1;
    ret = 1;
#endif
#endif
 
 
  return ret;
  return ret;
}
}
#endif
#endif
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.