diff --git a/config/optimize b/config/optimize index a5e6548643..733e7e5e02 100644 --- a/config/optimize +++ b/config/optimize @@ -58,7 +58,7 @@ fi TARGET_CPPFLAGS= TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS" TARGET_CXXFLAGS="$TARGET_CFLAGS" -TARGET_LDFLAGS="$TARGET_LDFLAGS $LD_OPTIM" +TARGET_LDFLAGS="$TARGET_LDFLAGS $LD_OPTIM $GCC_OPTIM" TARGET_LIBDIR="$SYSROOT_PREFIX/lib $SYSROOT_PREFIX/usr/lib" TARGET_INCDIR="$SYSROOT_PREFIX/include $SYSROOT_PREFIX/usr/include" diff --git a/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-030-since_we_never_allow_overlays_to_render_to_gpu_buffers_drop_this_code_path.patch b/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-030-since_we_never_allow_overlays_to_render_to_gpu_buffers_drop_this_code_path.patch new file mode 100644 index 0000000000..5f4e069c22 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-030-since_we_never_allow_overlays_to_render_to_gpu_buffers_drop_this_code_path.patch @@ -0,0 +1,82 @@ +diff -Naur xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDOverlayRenderer.h xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDOverlayRenderer.h +--- xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDOverlayRenderer.h 2011-03-08 02:49:16.000000000 +0100 ++++ xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDOverlayRenderer.h 2011-09-15 13:26:00.674107708 +0200 +@@ -72,6 +72,9 @@ + + static void Render(DVDVideoPicture* pPicture, CDVDOverlay* pOverlay, double pts) + { ++ if(pPicture->format != DVDVideoPicture::FMT_YUV420P) ++ return; ++ + DVDPictureRenderer p; + + p.data[0] = pPicture->data[0]; +diff -Naur xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +--- xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-03-08 02:49:17.000000000 +0100 ++++ xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-09-15 13:31:23.725399996 +0200 +@@ -793,33 +793,22 @@ + enum EOverlay + { OVERLAY_AUTO // select mode auto + , OVERLAY_GPU // render osd using gpu +- , OVERLAY_VID // render osd directly on video memory + , OVERLAY_BUF // render osd on buffer + } render = OVERLAY_AUTO; + +- if(render == OVERLAY_AUTO) ++ if(pSource->format == DVDVideoPicture::FMT_YUV420P) + { +- render = OVERLAY_GPU; +- + #ifdef _LINUX + // for now use cpu for ssa overlays as it currently allocates and + // frees textures for each frame this causes a hugh memory leak + // on some mesa intel drivers +- if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) && pSource->format == DVDVideoPicture::FMT_YUV420P) +- render = OVERLAY_VID; +-#endif + +- if(render == OVERLAY_VID) +- { +- if( m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU) +- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE) +- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) ) +- render = OVERLAY_BUF; +- } +- } ++ if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU) ++ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE) ++ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) ) ++ render = OVERLAY_BUF; ++#endif + +- if(pSource->format == DVDVideoPicture::FMT_YUV420P) +- { + if(render == OVERLAY_BUF) + { + // rendering spu overlay types directly on video memory costs a lot of processing power. +@@ -848,6 +837,9 @@ + } + } + ++ if(render == OVERLAY_AUTO) ++ render = OVERLAY_GPU; ++ + m_pOverlayContainer->Lock(); + + VecOverlays* pVecOverlays = m_pOverlayContainer->GetOverlays(); +@@ -871,13 +863,8 @@ + if (render == OVERLAY_GPU) + g_renderManager.AddOverlay(pOverlay, pts2); + +- if(pSource->format == DVDVideoPicture::FMT_YUV420P) +- { +- if (render == OVERLAY_BUF) +- CDVDOverlayRenderer::Render(m_pTempOverlayPicture, pOverlay, pts2); +- else if(render == OVERLAY_VID) +- CDVDOverlayRenderer::Render(pDest, pOverlay, pts2); +- } ++ if (render == OVERLAY_BUF) ++ CDVDOverlayRenderer::Render(m_pTempOverlayPicture, pOverlay, pts2); + + } + } diff --git a/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-031-disable_overlay_renderer_for_MESA_older_then_7.7.1_on_linux.patch b/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-031-disable_overlay_renderer_for_MESA_older_then_7.7.1_on_linux.patch index 81f2957450..7ea4d9de0b 100644 --- a/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-031-disable_overlay_renderer_for_MESA_older_then_7.7.1_on_linux.patch +++ b/packages/mediacenter/xbmc/patches/xbmc-10.1-Dharma-031-disable_overlay_renderer_for_MESA_older_then_7.7.1_on_linux.patch @@ -1,48 +1,45 @@ -diff -Naur xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp.rej xbmc-10.1-Dharma.patch1/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp.rej ---- xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp.rej 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-10.1-Dharma.patch1/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp.rej 2011-08-22 05:09:40.801478536 +0200 -@@ -0,0 +1,38 @@ -+--- xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -++++ xbmc/cores/dvdplayer/DVDPlayerVideo.cpp -+@@ -20,6 +20,7 @@ -+ */ -+ -+ #include "system.h" -++#include "windowing/WindowingFactory.h" -+ #include "settings/AdvancedSettings.h" -+ #include "settings/GUISettings.h" -+ #include "settings/Settings.h" -+@@ -829,16 +830,17 @@ -+ -+ if(pSource->format == DVDVideoPicture::FMT_YUV420P) -+ { -+-#ifdef _LINUX -+- // for now use cpu for ssa overlays as it currently allocates and -+- // frees textures for each frame this causes a hugh memory leak -+- // on some mesa intel drivers -+- -+- if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU) -+- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE) -+- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) ) -+- render = OVERLAY_BUF; -+-#endif -++ if(g_Windowing.GetRenderQuirks() & RENDER_QUIRKS_MAJORMEMLEAK_OVERLAYRENDERER) -++ { -++ // for now use cpu for ssa overlays as it currently allocates and -++ // frees textures for each frame this causes a hugh memory leak -++ // on some mesa intel drivers -++ -++ if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU) -++ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE) -++ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) ) -++ render = OVERLAY_BUF; -++ } -+ -+ if(render == OVERLAY_BUF) -+ { -diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.cpp xbmc-10.1-Dharma.patch1/xbmc/RenderSystem.cpp +diff -Naur xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +--- xbmc-10.1-Dharma/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-09-15 13:59:35.016784668 +0200 ++++ xbmc-10.1-Dharma.patch/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2011-09-15 13:58:46.193138096 +0200 +@@ -20,6 +20,7 @@ + */ + + #include "system.h" ++#include "WindowingFactory.h" + #include "AdvancedSettings.h" + #include "GUISettings.h" + #include "Settings.h" +@@ -798,16 +799,17 @@ + + if(pSource->format == DVDVideoPicture::FMT_YUV420P) + { +-#ifdef _LINUX +- // for now use cpu for ssa overlays as it currently allocates and +- // frees textures for each frame this causes a hugh memory leak +- // on some mesa intel drivers +- +- if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU) +- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE) +- || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) ) +- render = OVERLAY_BUF; +-#endif ++ if(g_Windowing.GetRenderQuirks() & RENDER_QUIRKS_MAJORMEMLEAK_OVERLAYRENDERER) ++ { ++ // for now use cpu for ssa overlays as it currently allocates and ++ // frees textures for each frame this causes a hugh memory leak ++ // on some mesa intel drivers ++ ++ if(m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SPU) ++ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_IMAGE) ++ || m_pOverlayContainer->ContainsOverlayType(DVDOVERLAY_TYPE_SSA) ) ++ render = OVERLAY_BUF; ++ } + + if(render == OVERLAY_BUF) + { +diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.cpp xbmc-10.1-Dharma.patch/xbmc/RenderSystem.cpp --- xbmc-10.1-Dharma/xbmc/RenderSystem.cpp 2011-03-08 02:49:14.000000000 +0100 -+++ xbmc-10.1-Dharma.patch1/xbmc/RenderSystem.cpp 2011-08-22 05:10:30.353131282 +0200 ++++ xbmc-10.1-Dharma.patch/xbmc/RenderSystem.cpp 2011-09-15 13:56:10.592078024 +0200 @@ -29,6 +29,7 @@ m_RenderVersionMajor = 0; m_RenderVersionMinor = 0; @@ -51,9 +48,9 @@ diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.cpp xbmc-10.1-Dharma.patch1/xbmc/R m_minDXTPitch = 0; } -diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystemGL.cpp xbmc-10.1-Dharma.patch1/xbmc/RenderSystemGL.cpp +diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystemGL.cpp xbmc-10.1-Dharma.patch/xbmc/RenderSystemGL.cpp --- xbmc-10.1-Dharma/xbmc/RenderSystemGL.cpp 2011-03-08 02:49:14.000000000 +0100 -+++ xbmc-10.1-Dharma.patch1/xbmc/RenderSystemGL.cpp 2011-08-22 05:10:58.079496562 +0200 ++++ xbmc-10.1-Dharma.patch/xbmc/RenderSystemGL.cpp 2011-09-15 13:56:40.948479861 +0200 @@ -65,8 +65,22 @@ } } @@ -78,9 +75,9 @@ diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystemGL.cpp xbmc-10.1-Dharma.patch1/xbmc if(m_RenderRenderer.Find("Poulsbo") >= 0) m_renderCaps &= ~RENDER_CAPS_DXT_NPOT; } -diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.h xbmc-10.1-Dharma.patch1/xbmc/RenderSystem.h +diff -Naur xbmc-10.1-Dharma/xbmc/RenderSystem.h xbmc-10.1-Dharma.patch/xbmc/RenderSystem.h --- xbmc-10.1-Dharma/xbmc/RenderSystem.h 2011-03-08 02:49:14.000000000 +0100 -+++ xbmc-10.1-Dharma.patch1/xbmc/RenderSystem.h 2011-08-22 05:10:38.495238548 +0200 ++++ xbmc-10.1-Dharma.patch/xbmc/RenderSystem.h 2011-09-15 13:56:23.653250913 +0200 @@ -52,6 +52,11 @@ RENDER_CAPS_DXT_NPOT = (1 << 2) }; diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-chpasswd.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-chpasswd.patch new file mode 100644 index 0000000000..0cba0e219a --- /dev/null +++ b/packages/sysutils/busybox/patches/busybox-1.19.2-chpasswd.patch @@ -0,0 +1,55 @@ +--- busybox-1.19.2/loginutils/chpasswd.c ++++ busybox-1.19.2-chpasswd/loginutils/chpasswd.c +@@ -33,9 +33,8 @@ static const char chpasswd_longopts[] AL + int chpasswd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; + int chpasswd_main(int argc UNUSED_PARAM, char **argv) + { +- char *name, *pass; +- char salt[sizeof("$N$XXXXXXXX")]; +- int opt, rc; ++ char *name; ++ int opt; + + if (getuid() != 0) + bb_error_msg_and_die(bb_msg_perm_denied_are_you_root); +@@ -45,6 +44,10 @@ int chpasswd_main(int argc UNUSED_PARAM, + opt = getopt32(argv, "em"); + + while ((name = xmalloc_fgetline(stdin)) != NULL) { ++ char *free_me; ++ char *pass; ++ int rc; ++ + pass = strchr(name, ':'); + if (!pass) + bb_error_msg_and_die("missing new password"); +@@ -52,7 +55,10 @@ int chpasswd_main(int argc UNUSED_PARAM, + + xuname2uid(name); /* dies if there is no such user */ + ++ free_me = NULL; + if (!(opt & OPT_ENC)) { ++ char salt[sizeof("$N$XXXXXXXX")]; ++ + crypt_make_salt(salt, 1); + if (opt & OPT_MD5) { + salt[0] = '$'; +@@ -60,7 +66,7 @@ int chpasswd_main(int argc UNUSED_PARAM, + salt[2] = '$'; + crypt_make_salt(salt + 3, 4); + } +- pass = pw_encrypt(pass, salt, 0); ++ free_me = pass = pw_encrypt(pass, salt, 0); + } + + /* This is rather complex: if user is not found in /etc/shadow, +@@ -81,8 +87,7 @@ int chpasswd_main(int argc UNUSED_PARAM, + bb_info_msg("Password for '%s' changed", name); + logmode = LOGMODE_STDIO; + free(name); +- if (!(opt & OPT_ENC)) +- free(pass); ++ free(free_me); + } + return EXIT_SUCCESS; + } diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-crond.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-crond.patch new file mode 100644 index 0000000000..043a846ca4 --- /dev/null +++ b/packages/sysutils/busybox/patches/busybox-1.19.2-crond.patch @@ -0,0 +1,12 @@ +--- busybox-1.19.2/miscutils/crond.c ++++ busybox-1.19.2-crond/miscutils/crond.c +@@ -861,7 +861,8 @@ int crond_main(int argc UNUSED_PARAM, ch + + /* "-b after -f is ignored", and so on for every pair a-b */ + opt_complementary = "f-b:b-f:S-L:L-S" IF_FEATURE_CROND_D(":d-l") +- ":l+:d+"; /* -l and -d have numeric param */ ++ /* -l and -d have numeric param */ ++ ":l+" IF_FEATURE_CROND_D(":d+"); + opts = getopt32(argv, "l:L:fbSc:" IF_FEATURE_CROND_D("d:"), + &G.log_level, &G.log_filename, &G.crontab_dir_name + IF_FEATURE_CROND_D(,&G.log_level)); diff --git a/packages/sysutils/busybox/patches/busybox-1.19.2-inetd.patch b/packages/sysutils/busybox/patches/busybox-1.19.2-inetd.patch new file mode 100644 index 0000000000..e1395a6b3b --- /dev/null +++ b/packages/sysutils/busybox/patches/busybox-1.19.2-inetd.patch @@ -0,0 +1,47 @@ +--- busybox-1.19.2/networking/inetd.c ++++ busybox-1.19.2-inetd/networking/inetd.c +@@ -1278,6 +1278,7 @@ int inetd_main(int argc UNUSED_PARAM, ch + sep->se_count = 0; + rearm_alarm(); /* will revive it in RETRYTIME sec */ + restore_sigmask(&omask); ++ maybe_close(new_udp_fd); + maybe_close(accepted_fd); + continue; /* -> check next fd in fd set */ + } +@@ -1298,17 +1299,18 @@ int inetd_main(int argc UNUSED_PARAM, ch + bb_perror_msg("vfork"+1); + sleep(1); + restore_sigmask(&omask); ++ maybe_close(new_udp_fd); + maybe_close(accepted_fd); + continue; /* -> check next fd in fd set */ + } + if (pid == 0) + pid--; /* -1: "we did fork and we are child" */ + } +- /* if pid == 0 here, we never forked */ ++ /* if pid == 0 here, we didn't fork */ + + if (pid > 0) { /* parent */ + if (sep->se_wait) { +- /* tcp wait: we passed listening socket to child, ++ /* wait: we passed socket to child, + * will wait for child to terminate */ + sep->se_wait = pid; + remove_fd_from_set(sep->se_fd); +@@ -1345,9 +1347,13 @@ int inetd_main(int argc UNUSED_PARAM, ch + setsid(); + /* "nowait" udp */ + if (new_udp_fd >= 0) { +- len_and_sockaddr *lsa = xzalloc_lsa(sep->se_family); ++ len_and_sockaddr *lsa; ++ int r; ++ ++ close(new_udp_fd); ++ lsa = xzalloc_lsa(sep->se_family); + /* peek at the packet and remember peer addr */ +- int r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT, ++ r = recvfrom(ctrl, NULL, 0, MSG_PEEK|MSG_DONTWAIT, + &lsa->u.sa, &lsa->len); + if (r < 0) + goto do_exit1; diff --git a/packages/sysutils/pciutils/build b/packages/sysutils/pciutils/build index deb46ebd16..4420ffafc6 100755 --- a/packages/sysutils/pciutils/build +++ b/packages/sysutils/pciutils/build @@ -24,7 +24,7 @@ cd $PKG_BUILD -make OPT="$TARGET_CFLAGS" \ +make OPT="$CFLAGS" \ CROSS_COMPILE=${TARGET_PREFIX} \ HOST=$TARGET_ARCH-linux \ IDSDIR="/usr/share" \