~ubuntu-branches/ubuntu/trusty/eglibc/trusty

« back to all changes in this revision

Viewing changes to sysdeps/sparc/sparc64/multiarch/md5-block.c

  • Committer: Package Import Robot
  • Author(s): Adam Conrad
  • Date: 2013-01-10 18:39:35 UTC
  • mfrom: (1.5.2) (4.4.24 experimental)
  • Revision ID: package-import@ubuntu.com-20130110183935-afsgfxkmg7wk5eaj
Tags: 2.17-0ubuntu1
* Merge with Debian, bringing in a new upstream and many small fixes:
  - patches/any/cvs-malloc-deadlock.diff: Dropped, merged upstream.
  - patches/ubuntu/lddebug-scopes.diff: Rebase for upstream changes.
  - patches/ubuntu/local-CVE-2012-3406.diff: Rebased against upstream.
  - patches/ubuntu/no-asm-mtune-i686.diff: Fixed in recent binutils.
* This upstream merge fixes a nasty hang in pulseaudio (LP: #1085342)
* Bump MIN_KERNEL_SUPPORTED to 2.6.32 on ARM, now that we no longer
  have to support shonky 2.6.31 kernels on imx51 babbage builders.
* Drop patches/ubuntu/local-disable-nscd-host-caching.diff, as these
  issues were apparently resolved upstream a while ago (LP: #613662)
* Fix the compiled-in bug URL to point to launchpad.net, not Debian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <sparc-ifunc.h>
 
2
 
 
3
#define  __md5_process_block __md5_process_block_generic
 
4
extern void __md5_process_block_generic (const void *buffer, size_t len,
 
5
                                         struct md5_ctx *ctx);
 
6
 
 
7
#include <crypt/md5-block.c>
 
8
 
 
9
#undef __md5_process_block
 
10
 
 
11
extern void __md5_process_block_crop (const void *buffer, size_t len,
 
12
                                      struct md5_ctx *ctx);
 
13
static bool cpu_supports_md5(int hwcap)
 
14
{
 
15
  unsigned long cfr;
 
16
 
 
17
  if (!(hwcap & HWCAP_SPARC_CRYPTO))
 
18
    return false;
 
19
 
 
20
  __asm__ ("rd %%asr26, %0" : "=r" (cfr));
 
21
  if (cfr & (1 << 4))
 
22
    return true;
 
23
 
 
24
  return false;
 
25
}
 
26
 
 
27
extern void __md5_process_block (const void *buffer, size_t len,
 
28
                                 struct md5_ctx *ctx);
 
29
sparc_libc_ifunc(__md5_process_block, cpu_supports_md5(hwcap) ? __md5_process_block_crop : __md5_process_block_generic);